packages feed

cpsa 3.6.7 → 3.6.8

raw patch · 153 files changed

+190848/−19818 lines, 153 filesdep ~base

Dependency ranges changed: base

Files

ChangeLog view
@@ -1,10 +1,37 @@+2021-11-12  John D. Ramsdell  <ramsdell@mitre.org>++	* cpsa.cabal (Version): Tagged as 3.6.8++2021-11-05  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Lib/Strand.hs (addBaseListener): Added a stronger+	method for solving some Diffie-Hellman authentication tests.  The+	method handles the special case in which the critical term has the+	form (exp (gen) (mul ...)) and all of variables in the exponent+	are random exponents (rndx).  It uses baseRndx to add listeners.++	* src/CPSA/DiffieHellman/Algebra.hs (baseRndx): When all of the+	factors in a group use rndx variables, baseRndx returns a list of+	concatenations of each variable with the base term exponentiated+	with the group without the variable.++2021-11-02  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/Graph/ExpandedView.hs (tdrawer): Added POV link in+	tree.++2021-09-10  John D. Ramsdell  <ramsdell@mitre.org>++	* src/CPSA/lib/Expand.hs (macroExpand): Made it an error to apply+	a macro to the wrong number of arguments.+ 2021-04-27  John D. Ramsdell  <ramsdell@mitre.org>  	* cpsa.cabal (Version): Tagged as 3.6.7  2021-04-27  Joshua D. Guttman  <guttman@mitre.org> -	* cpsa.cabal:  clarified package description (deorigination)+	* cpsa.cabal:  Clarified package description (deorigination)  2021-04-14  John D. Ramsdell  <ramsdell@mitre.org> 
NEWS view
@@ -1,5 +1,18 @@ CPSA NEWS +  November 2021:++* Release 3.6.8 adds a stronger method for solving Diffie-Hellman+  authentication tests for the case in which the test is a base value+  of a special form.  The form is (exp (gen) (mul ...)), where all of+  the variables in the exponent are random exponents and there is more+  than one variable in the exponent.  In this case, it adds a listener+  for each variable in the exponent.  The messages listened to is the+  concatenation of the variable and the base value after the factor+  that involves the variable has been removed.  Thus for (exp (gen)+  (mul x y y)), a listener is created for (cat (exp (gen) (mul y y) x)+  and (cat (exp (gen) x) y).+   May 2020:  * Release 3.6.6 adds a powerful feature: the cpsaprot preprocessing
README.txt view
@@ -43,7 +43,6 @@  Build and install with: -$ cabal configure $ cabal build $ cabal install : To find the directory containing documentation and samples, type:@@ -72,7 +71,6 @@  C:\...> cabal update C:\...> cabal install parallel-C:\...> cabal configure C:\...> cabal build C:\...> cabal install @@ -103,15 +101,21 @@  TEST SUITE +Cabal currently fails to preserve permissions correctly.  To fix this+problem, type:++$ /bin/sh fixperms+ : To run the test suite type: $ ./cpsatst -Tests with the .scm extension are expected to complete without error,-tests with the .lsp extension are expected to fail, and tests with the-.lisp extension are not run.  New users should read tst/README, and-then browse the files it suggests while reading CPSA documentation.+Tests with the .scm extension and .prot extension are expected to+complete without error, tests with the .lsp extension are expected to+fail, and tests with the .lisp extension are not run.  New users+should read tst/README, and then browse the files it suggests while+reading CPSA documentation. -Don't develop your protocols in the tst directory.  The Makefile is+Don't develop your protocols in the tst directory.  The script is optimized for testing the cpsa program, not analyzing protocols.  ADDITIONAL PROGRAMS
cpsa.cabal view
@@ -1,5 +1,5 @@ Name:                   cpsa-Version:                3.6.7+Version:                3.6.8 Maintainer:             mliskov@mitre.org Cabal-Version:          >= 1.10 License:                BSD3@@ -71,7 +71,7 @@  Data-Dir:               doc Extra-Source-Files:-  Makefile ChangeLog README.txt NEWS mkghci cpsatst setup.bat+  Makefile ChangeLog README.txt NEWS mkghci fixperms cpsatst setup.bat   src/cpsa.el src/cpsaops.scm src/cpsa.pl src/pp.pl   src/sexpr.pl src/ghcmemlimit src/cpsajson.py src/split.py   src/ocaml/Makefile src/ocaml/README src/ocaml/cpsa.d.itarget@@ -80,39 +80,56 @@   src/ocaml/main.mli src/ocaml/pp.ml src/ocaml/token.ml   src/ocaml/token.mli src/ocaml/scanner.mll src/ocaml/sexpr.ml   src/ocaml/sexpr.mli src/ocaml/sexpr_type.ml-  tst/checktst tst/updatetst tst/graphtst+  tst/checktst tst/updatetst tst/cpsagraphtst   tst/Makefile tst/Make.hs tst/README-  tst/axiom2.scm tst/axiom2.tst tst/blanchet.scm tst/blanchet.tst-  tst/bltk_example.lisp tst/bltk_example.tst tst/bltk_test.scm-  tst/bltk_test.tst tst/dh-ca.scm tst/dh-ca.tst tst/dh_mim2.scm-  tst/dh_mim2.tst tst/dh_mim.scm tst/dh_mim.tst tst/dhnsl_basic.scm-  tst/dhnsl_basic.tst tst/dhnsl.lisp tst/dhnsl.tst tst/dhnsl_use.scm-  tst/dhnsl_use.tst tst/dh_sig.scm tst/dh_sig.tst tst/dh_test.scm-  tst/dh_test.tst tst/enrich.scm tst/enrich.tst tst/envelope.scm-  tst/envelope.tst tst/ffgg.scm tst/ffgg.tst tst/fnof_or.scm-  tst/fnof_or.tst tst/fnof_test.scm tst/fnof_test.tst+  tst/aik.scm tst/aik.tst tst/attest.scm tst/attest.tst tst/axiom2.scm+  tst/axiom2.tst tst/blanchet.scm tst/blanchet.tst tst/bltk_or.scm+  tst/bltk_or.tst tst/bltk_test.scm tst/bltk_test.tst tst/comment.scm+  tst/comment.tst tst/comp_test.scm tst/comp_test.tst tst/dh-ca.scm+  tst/dh-ca.tst tst/dh_group_sig.scm tst/dh_group_sig.tst+  tst/dh_mim.scm tst/dh_mim.tst tst/dh_mim2.scm tst/dh_mim2.tst+  tst/dh_mim_nobase.scm tst/dh_mim_nobase.tst tst/dh_sig.scm+  tst/dh_sig.tst tst/dh_test.scm tst/dh_test.tst tst/dhcr_um.scm+  tst/dhcr_um.tst tst/dhcr_um3.scm tst/dhcr_um3.tst tst/dhcr_umx.scm+  tst/dhcr_umx.tst tst/dhnsl_basic.scm tst/dhnsl_basic.tst+  tst/dhnsl_use.scm tst/dhnsl_use.tst tst/doorsep.scm tst/doorsep.tst+  tst/doorsep2invk.scm tst/doorsep2invk.tst tst/eadh_um.scm+  tst/eadh_um.tst tst/enrich.scm tst/enrich.tst tst/envelope.scm+  tst/envelope.tst tst/envelope_short.scm tst/envelope_short.tst+  tst/eq_test.scm tst/eq_test.tst tst/ffgg.scm tst/ffgg.tst+  tst/fluffy_draft03_gske.scm tst/fluffy_draft03_gske.tst+  tst/fnof_or.scm tst/fnof_or.tst tst/fnof_test.scm tst/fnof_test.tst   tst/fnof_woolam.scm tst/fnof_woolam.tst tst/fnof_yahalom.scm   tst/fnof_yahalom.tst tst/goals.scm tst/goals.tst tst/iadh_um.scm-  tst/iadh_um.tst tst/injection.scm tst/injection.tst-  tst/kerberos++.scm tst/kerberos++.tst tst/lt_test.scm-  tst/lt_test.tst tst/neq_test.scm-  tst/neq_test.tst tst/ns.scm tst/ns.tst tst/or.scm tst/or.tst-  tst/owang.scm tst/owang.tst tst/owat.scm tst/owat.tst tst/pkinit.scm-  tst/pkinit.tst tst/plaindh.scm tst/plaindh.tst tst/priority_test.scm-  tst/priority_test.tst tst/staticdh.scm tst/staticdh.tst-  tst/station2.scm tst/station2.tst-  tst/subsort_test.scm tst/subsort_test.tst-  tst/test_small.scm tst/test_small.tst tst/unilateral.scm-  tst/unilateral.tst tst/uniq-gen-test.scm tst/uniq-gen-test.tst-  tst/wang.tst tst/woolam.scm tst/woolam.tst tst/wrap_decrypt.lsp-  tst/wrap_decrypt.tst tst/yahalom.scm tst/yahalom.tst-  tst/aik.scm tst/aik.tst tst/reflect.scm tst/reflect.tst-  tst/station.scm tst/station.tst tst/kerb.scm tst/kerb.tst-  tst/attest.scm tst/attest.tst tst/comp_test.scm tst/comp_test.tst-  tst/fluffy_draft03_gske.scm tst/fluffy_draft03_gske.tst-  tst/ordered.scm tst/ordered.tst tst/prottrans.scm tst/prottrans.tst-  tst/role_uniq.scm tst/role_uniq.tst tst/rule-order.scm-  tst/rule-order.tst tst/trust-anchor.scm tst/trust-anchor.tst+  tst/iadh_um.tst tst/iadh_um_eq.scm tst/iadh_um_eq.tst+  tst/iadh_um_joshua.scm tst/iadh_um_joshua.tst tst/iadh_umx.scm+  tst/iadh_umx.tst tst/injection.scm tst/injection.tst tst/kerb.scm+  tst/kerb.tst tst/kerberos++.scm tst/kerberos++.tst tst/lt_test.scm+  tst/lt_test.tst tst/neq_test.scm tst/neq_test.tst tst/nh-ca-w-dh.scm+  tst/nh-ca-w-dh.tst tst/nh-ca.scm tst/nh-ca.tst tst/nhcr_um.scm+  tst/nhcr_um.tst tst/nhcr_um3.scm tst/nhcr_um3.tst tst/nhcr_umx.scm+  tst/nhcr_umx.tst tst/ns.scm tst/ns.tst tst/or.scm tst/or.tst+  tst/ordered.scm tst/ordered.tst tst/owang.scm tst/owang.tst+  tst/owat.scm tst/owat.tst tst/pkinit.scm tst/pkinit.tst+  tst/plaindh.scm tst/plaindh.tst tst/precursor.scm tst/precursor.tst+  tst/priority_test.scm tst/priority_test.tst tst/prottrans.scm+  tst/prottrans.tst tst/reflect.scm tst/reflect.tst tst/reflect_dh.scm+  tst/reflect_dh.tst tst/role_uniq.scm tst/role_uniq.tst+  tst/rule-order.scm tst/rule-order.tst tst/staticdh.scm+  tst/staticdh.tst tst/station.scm tst/station.tst tst/station2.scm+  tst/station2.tst tst/station_newhope.scm tst/station_newhope.tst+  tst/station_nobase.scm tst/station_nobase.tst tst/stationbase.scm+  tst/stationbase.tst tst/subsort_test.scm tst/subsort_test.tst+  tst/tag_test.scm tst/tag_test.tst tst/target.scm tst/target.tst+  tst/test_g.scm tst/test_g.tst tst/test_small.scm tst/test_small.tst+  tst/thinning.scm tst/thinning.tst tst/trust-anchor.scm+  tst/trust-anchor.tst tst/ugen_test.scm tst/ugen_test.tst+  tst/unilateral.scm tst/unilateral.tst tst/uniq-gen-test.scm+  tst/uniq-gen-test.tst tst/uniq_orig_doesnt_fail.scm+  tst/uniq_orig_doesnt_fail.tst tst/wd-goalssat.scm+  tst/wd-goalssat.tst tst/wd-gs-simple.scm tst/wd-gs-simple.tst+  tst/woolam.scm tst/woolam.tst tst/yahalom.scm tst/yahalom.tst+  tst/yolo.scm tst/yolo.tst tst/wrap_decrypt.lsp tst/wrap_decrypt.tst   tst/blanchet_doorsep.prot tst/blanchet_doorsep.tst  Source-Repository head@@ -122,7 +139,7 @@ Executable cpsa   Main-Is:              CPSA/Lib/Main.hs   Default-Language:     Haskell2010-  Build-Depends:        base >= 4 && < 5, containers, parallel+  Build-Depends:        base >= 4.13 && < 5, containers, parallel   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports -threaded -rtsopts   Hs-Source-Dirs:       src@@ -138,7 +155,7 @@ Executable cpsagraph   Main-Is:              CPSA/Graph/Main.hs   Default-Language:     Haskell2010-  Build-Depends:        base >= 4 && < 5, containers+  Build-Depends:        base >= 4.13 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports   Hs-Source-Dirs:       src@@ -153,7 +170,7 @@ Executable cpsashapes   Main-Is:              CPSA/Shapes/Main.hs   Default-Language:     Haskell2010-  Build-Depends:        base >= 4 && < 5, containers+  Build-Depends:        base >= 4.13 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports   Hs-Source-Dirs:       src@@ -165,7 +182,7 @@ Executable cpsaannotations   Main-Is:              CPSA/Annotations/Main.hs   Default-Language:     Haskell2010-  Build-Depends:        base >= 4 && < 5, containers+  Build-Depends:        base >= 4.13 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports   Hs-Source-Dirs:       src@@ -190,7 +207,7 @@ Executable cpsasas   Main-Is:              CPSA/SAS/Main.hs   Default-Language:     Haskell2010-  Build-Depends:        base >= 4 && < 5, containers+  Build-Depends:        base >= 4.13 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports   Hs-Source-Dirs:       src@@ -250,7 +267,7 @@ Executable cpsamatch   Main-Is:              CPSA/Match/Main.hs   Default-Language:     Haskell2010-  Build-Depends:        base >= 4 && < 5, containers+  Build-Depends:        base >= 4.13 && < 5, containers   GHC-Options:     -Wall -fno-warn-name-shadowing -fwarn-unused-imports   Hs-Source-Dirs:       src
cpsatst view
@@ -12,6 +12,7 @@ # ./cpsagraphall  CPSAFLAGS="+RTS -M512m -N -RTS"+TST=${1:-tst}  # Analyze the results of a CPSA run. analyze () {@@ -25,17 +26,17 @@     cabal run cpsagraph -v0 -- -o "${1}_shapes.xhtml" "${1}_shapes.txt" } -for i in tst/*.scm+for i in ${TST}/*.scm do-    b=tst/`basename "$i" .scm`+    b=${TST}/`basename "$i" .scm`     echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"     cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i" || echo cpsa failed.     analyze "$b" done -for i in tst/*.prot+for i in ${TST}/*.prot do-    b=tst/`basename "$i" .prot`+    b=${TST}/`basename "$i" .prot`     echo cpsaprot  "$i" '|' cpsa ${CPSAFLAGS} -o "$b.txt"     cabal run cpsaprot -v0 -- "$i" | \ 	cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" || \@@ -43,9 +44,9 @@     analyze "$b" done -for i in tst/*.lsp+for i in ${TST}/*.lsp do-    b=tst/`basename "$i" .lsp`+    b=${TST}/`basename "$i" .lsp`     echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"     cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i"     analyze "$b"
+ fixperms view
@@ -0,0 +1,11 @@+#! /bin/sh++# This script fixes a bug in Cabal.  When it creates a source+# distribution, it fails to add execution permission to scripts in the+# distribution.  Correct this by executing:+#+# $ /bin/sh fixperms+#++chmod +x cpsatst tst/checktst tst/updatetst tst/cpsagraphtst+chmod +x mkghci src/ghcmemlimit src/split.py
src/CPSA/Annotations/Annotations.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Annotations.Annotations (Prot, annotations) where  import Control.Monad
src/CPSA/Annotations/Formulas.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Annotations.Formulas (Formula, truth, true, says, implies,     freeVars, finstantiate, mapAccumLM, loadDecls, loadFormula,     displayFormula) where
src/CPSA/Basic/Algebra.hs view
@@ -14,11 +14,7 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE MultiParamTypeClasses, CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif+{-# LANGUAGE MultiParamTypeClasses #-}  module CPSA.Basic.Algebra (name, origin) where @@ -123,7 +119,7 @@     | Cat                       -- Term concatenation (Pairing really)     | Enc                       -- Encryption     | Hash                      -- Hashing-      deriving (Show, Eq, Ord, Enum, Bounded)+      deriving (Show, Eq, Ord)  -- A Basic Crypto Algebra Term @@ -151,6 +147,15 @@     s == Text || s == Data || s == Name || s == Skey || s == Akey || s == Tag isVar _ = False +varSym :: Symbol -> Bool+varSym Text = True+varSym Data = True+varSym Name = True+varSym Skey = True+varSym Akey = True+varSym Tag = True+varSym _ = False+ -- Note that isVar of (D _) is false. isStrdVar :: Term -> Bool isStrdVar (D _) = True@@ -289,12 +294,8 @@  -- Is the sort of the term a base sort? isAtom :: Term -> Bool-isAtom (I _) = False-isAtom (C _) = True-isAtom (F s _) =-    s == Text || s == Data || s == Name || s == Skey || s == Akey || s == Tag-isAtom (D _) = False-isAtom (Z _) = False+isAtom (F s _) = varSym s+isAtom _ = False  -- Is the term numeric? isNum :: Term -> Bool@@ -623,6 +624,10 @@ basePrecursor _ _ =   error "Algebra.basePrecursor: Not implemented for the basic algebra" +baseRndx :: Term -> Maybe [Term]+baseRndx _ =+  error "Algebra.baseRndx: Not implemented for the basic algebra"+ {- mostGenPrecursors :: Gen -> Term -> [(Gen, Term)] mostGenPrecursors _ _ = []@@ -636,6 +641,7 @@     clone = clone     loadVars = loadVars     basePrecursor = basePrecursor+    baseRndx = baseRndx  -- Functions used in both unification and matching @@ -950,8 +956,9 @@  loadVarPair :: MonadFail m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)] loadVarPair (L _ (x:y:xs)) =-    let (t:vs) = reverse (x:y:xs) in-    return [(v,t) | v <- reverse vs]+    case reverse (x:y:xs) of+      t : vs -> return [(v,t) | v <- reverse vs]+      [] -> error "Algebra.loadVarPair: [] cannot happen" loadVarPair x = fail (shows (annotation x) "Bad variable declaration")  loadVar :: MonadFail m => (Gen, [Term]) -> (SExpr Pos, SExpr Pos) ->@@ -1132,13 +1139,15 @@ displayVars :: Context -> [Term] -> [SExpr ()] displayVars _ [] = [] displayVars ctx vars =-    let (v,t):pairs = map (displayVar ctx) vars in-    loop t [v] pairs-    where-      loop t vs [] = [L () (reverse (t:vs))]-      loop t vs ((v',t'):xs)-          | t == t' = loop t (v':vs) xs-          | otherwise = L () (reverse (t:vs)):loop t' [v'] xs+    case map (displayVar ctx) vars of+      (v,t):pairs ->+        loop t [v] pairs+        where+          loop t vs [] = [L () (reverse (t:vs))]+          loop t vs ((v',t'):xs)+            | t == t' = loop t (v':vs) xs+            | otherwise = L () (reverse (t:vs)):loop t' [v'] xs+      [] -> error "Algebra.displayVars: [] cannot happen"  displayVar :: Context -> Term -> (SExpr (), SExpr ()) displayVar ctx (I x) = displaySortId "mesg" ctx x
src/CPSA/DiffieHellman/Algebra.hs view
@@ -98,10 +98,6 @@  {-# LANGUAGE MultiParamTypeClasses, CPP #-} -#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- -- Fail on non-canonical terms with this is defined -- #define CANONICAL @@ -286,12 +282,16 @@ cloneId gen x = freshId gen (idName x)  -- A term in an Abelian group is a map from identifiers to pairs of--- bools and non-zero integers.  The boolean is true if the variable--- is a basis element.+-- sorts and non-zero integers. +data Sort+  = Rndx                        -- Sort of a basis element+  | Expt+  deriving (Show, Eq, Ord)+ type Coef = Int -type Desc = (Bool, Coef)+type Desc = (Sort, Coef)  type Group = Map Id Desc @@ -301,25 +301,25 @@  isBasisVar :: Group -> Bool isBasisVar t =-  M.size t == 1 && head (M.elems t) == (True, 1)+  M.size t == 1 && head (M.elems t) == (Rndx, 1)  isExprVar :: Group -> Bool isExprVar t =-  M.size t == 1 && head (M.elems t) == (False, 1)+  M.size t == 1 && head (M.elems t) == (Expt, 1) --- Assumes isGroupVar t == True or isBasisVar t == True!+-- Assumes isGroupVar t, isBasisVar t, or isExprVar is true getGroupVar :: Group -> Id getGroupVar x = head $ M.keys x  -- Create group var as a basis element if be is true-groupVarG :: Bool -> Id -> Group+groupVarG :: Sort -> Id -> Group groupVarG be x = M.singleton x (be, 1) -groupVar :: Bool -> Id -> Term+groupVar :: Sort -> Id -> Term groupVar be x = G $ groupVarG be x  groupVarGroup :: Id -> Group-groupVarGroup x = groupVarG False x+groupVarGroup x = groupVarG Expt x  dMapCoef :: (Coef -> Coef) -> Desc -> Desc dMapCoef f (be, c) = (be, f c)@@ -381,7 +381,7 @@     | Cat                       -- Term concatenation     | Enc                       -- Encryption     | Hash                      -- Hashing-      deriving (Show, Eq, Ord, Enum, Bounded)+      deriving (Show, Eq, Ord)  -- A Diffie-Hellman Algebra Term @@ -1035,11 +1035,9 @@ isExpr (G _) = True isExpr _ = False -{--isExpn :: Term -> Bool-isExpn (G t) = isBasisVar t-isExpn _ = False--}+isRndx :: Term -> Bool+isRndx (G t) = isBasisVar t+isRndx _ = False  expnInExpr :: Term -> Term -> Bool expnInExpr (G n) (G r) =@@ -1109,27 +1107,15 @@           | var == source = Place (reverse path) : paths       f paths path (F _ u) =           g paths path 0 u-      f paths path (G t) =-          groupPlaces (varId var) paths path 0 (linearize t)+      f paths path (G t)+          | M.member (varId var) t =+            Place (reverse path) : paths+          | otherwise = paths       f paths _ _ = paths       g paths _ _ [] = paths       g paths path i (t : u) =           g (f paths (i: path) t) path (i + 1) u -linearize :: Group -> [Id]-linearize t =-    do-      (x, (_, n)) <- M.assocs t-      replicate (if n >= 0 then n else negate n) x--groupPlaces ::  Id -> [Place] -> [Int] -> Int -> [Id] -> [Place]-groupPlaces _ paths _ _ [] = paths-groupPlaces x paths path i (y:ys) =-    let paths' = if x == y then-                     Place (reverse (i : path)) : paths-                 else paths in-    groupPlaces x paths' path (i + 1) ys- -- Returns the places a term is carried by another term. carriedPlaces :: Term -> Term -> [Place] carriedPlaces target source =@@ -1170,7 +1156,7 @@           F s (C.replaceNth (loop path (u !! i)) i u)       loop _ _ = C.assertError "Algebra.replace: Bad path to term" -factors :: Group -> [(Id, (Bool, Int))]+factors :: Group -> [Maplet] factors t =     do       (x, (be, n)) <- M.assocs t@@ -1304,14 +1290,42 @@  basePrecursor :: Gen -> Term -> (Gen, Term) basePrecursor g (F Base [t]) =-  (g', F Cat [F Base [F Exp [t, G $ invert x']], G x'])+  (g', F Cat [F Base [simplifyBase $ F Exp [t, G $ invert x']],+              G x'])   where     (g', x) = freshId g "w"-    G x' = groupVar False x-+    x' = groupVarG Expt x basePrecursor _ t =-  error ("Algebra.basePrecursor: Bad term " ++ show (F Base [t]))+  error ("Algebra.basePrecursor: Bad term " ++ show t) +simplifyBase :: Term -> Term+simplifyBase (F Exp [t, G g])+  | M.null g = simplifyBase t+simplifyBase (F Exp [F Exp [t, G g0], G g1]) =+  simplifyBase (F Exp [t, G (mul g0 g1)])+simplifyBase t = t++-- When all of the factors in a group use rndx variables, return a+-- list of concatenations of each variable with the base term+-- exponentiated with the group without the variable.++baseRndx :: Term -> Maybe [Term]+baseRndx (F Base [F Exp [F Genr [], G g]])+  | M.size g > 1 =+    loop [] (M.assocs g)+    where+      loop acc [] = Just acc+      loop _ ((_, (Expt, _)) : _) = Nothing+      loop acc ((id, (Rndx, _)) : maplets) =+        loop (baseBuild g id : acc) maplets+baseRndx _ = Nothing++baseBuild :: Group -> Id -> Term+baseBuild g var =+  F Cat+  [F Base [F Exp [F Genr [], G $ M.delete var g]],+    groupVar Rndx var]+ instance C.Gen Term Gen where     origin = origin     gmerge = gmerge@@ -1320,6 +1334,7 @@     clone = clone     loadVars = loadVars     basePrecursor = basePrecursor+    baseRndx = baseRndx  -- Functions used in both unification and matching @@ -1377,7 +1392,7 @@       f x (be, c) t =           mul (expg (groupLookup subst be x) c) t -groupLookup :: IdMap -> Bool -> Id -> Group+groupLookup :: IdMap -> Sort -> Id -> Group groupLookup subst be x =     case M.findWithDefault (groupVar be x) x subst of       G t -> t@@ -1438,7 +1453,8 @@  nonTrivialBinding :: Id -> Term -> Bool nonTrivialBinding x (I y) = x /= y-nonTrivialBinding x t@(G _) = not (t == groupVar True x || t == groupVar False x)+nonTrivialBinding x t@(G _) =+  not (t == groupVar Rndx x || t == groupVar Expt x) nonTrivialBinding _ _ = True  -- During unification, variables determined to be equal are collected@@ -1500,7 +1516,7 @@        f x (be, c) t =            mul (expg (chaseGroupLookup s be x) c) t -chaseGroupLookup :: IdMap -> Bool -> Id -> Group+chaseGroupLookup :: IdMap -> Sort -> Id -> Group chaseGroupLookup s be x =     case M.lookup x s of       Nothing -> groupVarG be x@@ -1718,12 +1734,12 @@       doGatherAll acc ((v,t):as) =           doGatherAll (acc ++ [v] ++ (gatherInTerm t)) as       gatherInTerm (G m) =-          map fst (filter (\(_,(b,_))->b) $ M.assocs m)+          map fst (filter (\(_,(b,_))->b == Rndx) $ M.assocs m)       gatherInTerm (F Base [F Genr []]) = []       gatherInTerm (F Base [I _]) = []       gatherInTerm (F Base [F Exp [_, G m]]) = gatherInTerm (G m)       gatherInTerm _ = error ("Algebra.latticeCrawl: unexpected pattern")-      allExpns = map (\id -> G (M.singleton id (True,1))) $ gatherAllExpns as+      allExpns = map (\id -> G (M.singleton id (Rndx,1))) $ gatherAllExpns as       allExpnIds = map foo allExpns       foo (G grp) = getGroupVar grp       foo _ = C.assertError ("Algebra.latticeCrawl: critical failure!")@@ -1750,7 +1766,7 @@     partUnifierLoop ([]:rest) acc = partUnifierLoop rest acc     partUnifierLoop ([_]:rest) acc = partUnifierLoop rest acc     partUnifierLoop ((a:(b:more)):rest) acc = partUnifierLoop ((b:more):rest)-           [gs' | gs <- acc, gs' <- unify (groupVar True a) (groupVar True b) gs]+           [gs' | gs <- acc, gs' <- unify (groupVar Rndx a) (groupVar Rndx b) gs]     apply s as =         map (substituteIdTerm s) as @@ -1760,7 +1776,7 @@   map (\(g,e) -> (g, compose (substitution e) s)) ges   where     isolateExprs (v, (G m)) =-        (v, G $ M.filterWithKey (\k (b,_) -> ((not b) || k == v)) m)+        (v, G $ M.filterWithKey (\k (b,_) -> (b == Expt || k == v)) m)     isolateExprs (v, (F Base [F Exp [base, G m]])) =         (v, F Base [F Exp [base, snd $ isolateExprs (v,(G m))]])     isolateExprs (v, t@(F Base _)) = (v, t)@@ -2070,7 +2086,7 @@ mkInitMatchDecis vs t =   mkDecis { dist = [(x, y) | x <- v, y <- v, x /= y] }   where-    v = [x | (x, (be, _)) <- M.assocs t, be, not $ S.member x vs]+    v = [x | (x, (be, _)) <- M.assocs t, be == Rndx, not $ S.member x vs]  -- Move fresh variables on the RHS of the equation to the LHS -- Move variables of sort expn on the LHS to the RHS@@ -2081,7 +2097,7 @@     (v1, c1) = M.partitionWithKey g t1 -- Fresh variables go in v1     g x y = S.member x v && f y        -- only when they are exprs     (v0, c0) = M.partition f t0        -- Basis elements go in c0-    f (be, _) = not be+    f (be, _) = be == Expt     lhs = mul v0 (invert v1)     rhs = mul c1 (invert c0) @@ -2090,7 +2106,7 @@ constSolve :: [Maplet] -> Set Id -> Gen -> IdMap ->               Decision Id -> [(Set Id, Gen, IdMap)] constSolve t v g r d-  | any (\(_, (be, _)) -> not be) t = [] -- Fail expr var is on RHS+  | any (\(_, (be, _)) -> be == Expt) t = [] -- Fail expr var is on RHS   | otherwise = constSolve1 t v g r d    -- All vars are expn  constSolve1 :: [Maplet] -> Set Id -> Gen ->@@ -2109,7 +2125,7 @@         t' = identify x y t     -- Equate x y in t         v' = S.delete x v       -- Eliminate x in v         r' = eliminate x y' r   -- And in r-        y' = groupVar True y+        y' = groupVar Rndx y         d' = d {same = (x, y):same d} -- And note decision  -- Find a pair of variables for which no decision has been made.@@ -2119,8 +2135,8 @@     not $ decided d x y]   where     vars = foldr f [] t-    f (x, (True, _)) v = x:v-    f (_, (False, _)) v = v+    f (x, (Rndx, _)) v = x:v+    f (_, (Expt, _)) v = v     decided d x y =             -- Is x and y decided?       u == v ||       any f (dist d)@@ -2254,10 +2270,10 @@       solve t0' t1 (S.insert x' $ S.delete x v) g' r' d       where         (g', x') = cloneId g x-        t = G $ group ((x', (False, 1)) :+        t = G $ group ((x', (Expt, 1)) :                        mInverse (divide ci (omit i t0)))         r' = eliminate x t r-        t0' = (x', (False, ci)) : modulo ci (omit i t0)+        t0' = (x', (Expt, ci)) : modulo ci (omit i t0)  eliminate :: Id -> Term -> IdMap -> IdMap eliminate x t r =@@ -2299,7 +2315,7 @@         t1' = identify x y t1   -- Equate x y in t1         v' = S.delete x v       -- Eliminate x in v         r' = eliminate x y' r   -- And in r-        y' = groupVar True y+        y' = groupVar Rndx y         d' = d {same = (x, y):same d}  {-@@ -2429,8 +2445,10 @@  loadVarPair :: MonadFail m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)] loadVarPair (L _ (x:y:xs)) =-    let (t:vs) = reverse (x:y:xs) in-    return [(v,t) | v <- reverse vs]+    case reverse (x:y:xs) of+      t : vs -> return [(v,t) | v <- reverse vs]+      [] -> error "Algebra.loadVarPair: [] cannot happen"+       loadVarPair x = fail (shows (annotation x) "Malformed vars declaration")  loadVar :: MonadFail m => (Gen, [Term]) -> (SExpr Pos, SExpr Pos) ->@@ -2456,11 +2474,11 @@   | sort == "akey" = return $ F Akey [I x]   | sort == "base" = return $ F Base [I x]   | sort == "tag" = return $ F Tag [I x]-  | sort == "expt" = return $ groupVar False x-  | sort == "rndx" = return $ groupVar True x+  | sort == "expt" = return $ groupVar Expt x+  | sort == "rndx" = return $ groupVar Rndx x   -- Legecy names-  | sort == "expr" = return $ groupVar False x-  | sort == "expn" = return $ groupVar True x+  | sort == "expr" = return $ groupVar Expt x+  | sort == "expn" = return $ groupVar Rndx x   | sort == "strd" = return $ D x   | otherwise = fail (shows pos "Sort " ++ sort ++ " not recognized") @@ -2471,6 +2489,14 @@     let name' = idName (varId t) in     if name' == name then Right t else loadLookup pos u name +loadLookupStrict :: Pos -> [Term] -> String -> Either String Term+loadLookupStrict pos vars name =+  case loadLookup pos vars name of+    Left msg -> Left msg+    Right t | not (isExpr t) || isRndx t -> Right t+    _ -> Left (shows pos $ "Identifier " ++ name +++               " is an expt--must be a rndx")+ loadLookupName :: MonadFail m => Pos -> [Term] -> String -> m Term loadLookupName pos vars name =     either fail f (loadLookup pos vars name)@@ -2486,8 +2512,13 @@       f _ = fail (shows pos $ "Expecting " ++ name ++ " to be an akey")  -- Load term and check that it is well-formed.+-- Load in strict mode when the second argument is true.+-- In this case, make sure that when an exponent is a carried term,+-- the exponent is a rndx variable reference. loadTerm :: MonadFail m => [Term] -> Bool -> SExpr Pos -> m Term-loadTerm vars _ (S pos s) =+loadTerm vars True (S pos s) =+    either fail return (loadLookupStrict pos vars s)+loadTerm vars False (S pos s) =     either fail return (loadLookup pos vars s) loadTerm _ _ (Q _ t) =     return (F Tag [(C t)])@@ -2648,7 +2679,7 @@     do       let (butLast, last) = splitLast l (l' : ls)       t <- loadCat pos strict vars butLast-      t' <- loadTerm vars strict last+      t' <- loadTerm vars False last       return $ F Enc [t, t'] loadEnc pos _ _ _ = fail (shows pos "Malformed enc") @@ -2660,9 +2691,9 @@       loop z x (y : ys) = loop (x : z) y ys  loadHash :: MonadFail m => LoadFunction m-loadHash _ strict vars (l : ls) =+loadHash _ _ vars (l : ls) =    do-     ts <- mapM (loadTerm vars strict) (l : ls)+     ts <- mapM (loadTerm vars False) (l : ls)      return $ F Hash [foldr1 (\a b -> F Cat [a, b]) ts] loadHash pos _ _ _ = fail (shows pos "Malformed hash") @@ -2673,13 +2704,15 @@ displayVars :: Context -> [Term] -> [SExpr ()] displayVars _ [] = [] displayVars ctx vars =-    let (v,t):pairs = map (displayVar ctx) vars in-    loop t [v] pairs-    where-      loop t vs [] = [L () (reverse (t:vs))]-      loop t vs ((v',t'):xs)-          | t == t' = loop t (v':vs) xs-          | otherwise = L () (reverse (t:vs)):loop t' [v'] xs+    case map (displayVar ctx) vars of+      (v,t):pairs ->+        loop t [v] pairs+        where+          loop t vs [] = [L () (reverse (t:vs))]+          loop t vs ((v',t'):xs)+            | t == t' = loop t (v':vs) xs+            | otherwise = L () (reverse (t:vs)):loop t' [v'] xs+      [] -> error "Algebra.displayVars: [] cannot happen"  displayVar :: Context -> Term -> (SExpr (), SExpr ()) displayVar ctx (I x) = displaySortId "mesg" ctx x
src/CPSA/Graph/ExpandedView.hs view
@@ -138,6 +138,8 @@       case toc of         True -> anchor h (\_ -> topid) id         False -> hPutStr h $ " " ++ show id+      hPutStr h ", POV"+      anchor h (\_ -> itemid id) id       hPutStrLn h ".</p>"       hPutStrLn h ""       let (width, height, es) = tree conf t
src/CPSA/Graph/Loader.hs view
@@ -11,12 +11,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Graph.Loader (Preskel, Dir (..), Vertex, protocol, role, env, inst,                           part, lastVertex, vertices, Node, vnode, aborted,                           strands, label, parent, seen, unrealized, shape,
src/CPSA/Lib/Algebra.hs view
@@ -8,12 +8,6 @@  {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-} -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Lib.Algebra where  import Data.Set (Set)@@ -174,6 +168,10 @@      -- Given a base value, create its precursor.     basePrecursor :: g -> t -> (g, t)++    -- Given a base value of the form (exp (gen) (mul ...))+    -- all variables as rndx's, return listener values.+    baseRndx :: t -> Maybe [t]  -- Substitutions 
src/CPSA/Lib/Characteristic.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Lib.Characteristic (Conj, characteristic) where  import Control.Monad
src/CPSA/Lib/Declaration.hs view
@@ -13,7 +13,7 @@         dterms, dlocs, daux, declInst, declInstAux, DeclInst, dkugenFull,         dkabsent, declsTerms, addDeclInst, declMember, nsdecls,         DeclInstList, Declaration, DeclInFormat(..), DeclOutFormat(..),-        DeclList, declarationRoleTags, +        DeclList, declarationRoleTags, --        BasicOutFmt, MultiTermOutFmt, NullOutFmt, BasicRoleOutFmt, GeneralOutFmt, --        BasicInFmt, MultiTermInFmt, NullInFmt, TwoTermInFmt,         declCheck, Loc, avoidTerms,@@ -460,5 +460,3 @@    where      failures = [t1 | (tag1,t1) <- pairs, (tag2,t2) <- pairs, t1 == t2, tag1 /= tag2]      pairs = map (\ di -> (daux di, head $ dterms di)) $ tagDecls "subsort" decls--
src/CPSA/Lib/Expand.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Lib.Expand (expand, readSExprs, Macro,                         expandSExpr, bound, getMacroName,                         getMacroArgs, getMacroBody) where@@ -133,20 +127,27 @@ macroExpand _ pos limit _     | limit <= 0 = fail (shows pos "Expansion limit exceeded") macroExpand macs pos limit sexpr@(L _ (S _ sym : xs)) =-    case macroExpand1 macs sym xs of-      Nothing -> return sexpr   -- Nothing to do-      Just sexpr -> macroExpand macs pos (limit - 1) sexpr+    do+      result <- macroExpand1 macs pos sym xs+      case result of+        Nothing -> return sexpr   -- Nothing to do+        Just sexpr -> macroExpand macs pos (limit - 1) sexpr macroExpand _ _ _ sexpr = return sexpr  -- Expand one macro call or return Nothing -macroExpand1 :: [Macro] -> String -> [SExpr Pos] -> Maybe (SExpr Pos)-macroExpand1 [] _ _ = Nothing-macroExpand1 (mac : macs) sym xs-    | name mac == sym && length (args mac) == length xs =-        Just (apply mac xs)+macroExpand1 :: MonadFail m => [Macro] -> Pos -> String ->+                [SExpr Pos] -> m (Maybe (SExpr Pos))+macroExpand1 [] _ _ _ = return Nothing+macroExpand1 (mac : macs) pos sym xs+    | name mac == sym =+      if length (args mac) == length xs then+        return (Just (apply mac xs))+      else+        fail (shows pos ("Expected argument count for macro " +++                         sym ++ " is " ++ show (args mac)))     | otherwise =-        macroExpand1 macs sym xs+        macroExpand1 macs pos sym xs  -- Apply a macro to some parameters 
src/CPSA/Lib/Loader.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Lib.Loader (loadSExprs) where  import Control.Monad
src/CPSA/Lib/Protocol.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Lib.Protocol (Event (..), evtTerms, evtMesgTerms, evtMap, evt,     recvTerm, Trace, stripSync, tterms, originates,     originationPos, gainedPos, genGainedPos, firstOccurs,
src/CPSA/Lib/Strand.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Lib.Strand (Instance, mkInstance, bldInstance, mkListener,     role, env, trace, height, listenerTerm, Sid, Node, mkPreskel,     firstSkeleton, Pair, Preskel, gen, protocol, kgoals, insts,@@ -315,7 +309,7 @@           | otherwise = loop dst (preds n ++ ns) (n : seen)  -- Compute the transitive closure,--- omitting pairs on the same strand.  +-- omitting pairs on the same strand. -- This routine returns pairs that are not well ordered. -- Deal with it! graphClose :: [GraphEdge e i] -> [GraphEdge e i]@@ -325,14 +319,14 @@       sameStrands (n0, n1) = strand n0 == strand n1  -- Compute the transitive closure--- including pairs on the same strand.  +-- including pairs on the same strand.  -- This routine returns pairs that are not well ordered. -- Deal with it! graphCloseAll :: [GraphEdge e i] -> [GraphEdge e i] graphCloseAll orderings =     loop orderings False orderings-    where +    where       loop orderings False [] = orderings       loop orderings True [] =           loop orderings False orderings -- restart loop@@ -344,7 +338,6 @@           | elem p orderings = inner orderings repeat pairs rest           | otherwise = inner (p : orderings) True pairs rest -                              {- -- The nodes that preceed node n via strand succession spreds :: GraphNode e i -> [GraphNode e i]@@ -1521,9 +1514,29 @@       pair = ((length (insts k), 1), n)       orderings' = pair : orderings k +-- This function adds a stronger method for solving some+-- Diffie-Hellman authentication tests.  The method handles the+-- special case in which the critical term has the form (exp (gen)+-- (mul ...)) and all of variables in the exponent are random+-- exponents (rndx).++-- When all of the factors in the exponent use rndx variables,+-- baseRndx returns a list of concatenations of each variable with the+-- base term exponentiated with the group without the variable.+ addBaseListener :: Algebra t p g s e c => Preskel t g s e -> Node ->-               Cause t -> t -> [Ans t p g s e c]+                   Cause t -> t -> [Ans t p g s e c] addBaseListener k n cause t =+    case baseRndx t of+      Just ts ->                -- All variables are rndx's.+        do                      -- Add a listener for each one.+          x <- ts+          addListener k n cause x+      _ -> formerAddBaseListener k n cause t++formerAddBaseListener :: Algebra t p g s e c => Preskel t g s e -> Node ->+                         Cause t -> t -> [Ans t p g s e c]+formerAddBaseListener k n cause t =     do       k' <- wellFormedPreskel k'       prs <- skeletonize useThinning@@ -2538,7 +2551,7 @@ hull :: Algebra t p g s e c => Bool -> PRS t p g s e c ->         [PRS t p g s e c] hull prune prs =-    loop (korig $ skel prs)+    loop (korig (skel prs) ++ kugen (skel prs))     where       -- No uniques originate on more than one strand       loop [] = enrich prune prs
src/CPSA/Lib/Utilities.hs view
@@ -7,8 +7,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}- module CPSA.Lib.Utilities where  import qualified Data.Set as S@@ -33,11 +31,7 @@     Fail l >>= _   = Fail l     Return r >>= k = k r -#if (MIN_VERSION_base(4,13,0)) instance MonadFail ReturnFail where-#else-#define MonadFail Monad-#endif     fail s         = Fail s  adjoin :: Eq a => a -> [a] -> [a]
src/CPSA/Match/Match.hs view
@@ -4,12 +4,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Match.Match (testMatcher) where  import CPSA.Lib.SExpr
src/CPSA/Prot/Main.hs view
@@ -30,12 +30,6 @@ to this point in the specification. -} -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module Main (main) where  import Numeric@@ -224,7 +218,6 @@   [S () chan, strip term] chmsg (L _ [S _ "chmsg", term]) = [strip term] chmsg term = [strip term]-  update :: String -> SExpr () -> Env -> Env update role msg [] = [(role, [msg])]
src/CPSA/SAS/Main.hs view
@@ -95,14 +95,14 @@     do       x <- tryIO (sas name origin state sexpr)       case x of+        Left err ->+            abort (show err)         Right (acc, Nothing) ->             after output margin acc sexpr         Right (acc, Just x) ->             do               writeLnSExpr output margin x               after output margin acc sexpr-        Left err ->-            abort (show err)  after :: Handle -> Int -> State t g c ->          Maybe (SExpr Pos) -> IO (State t g c)
src/CPSA/SAS/SAS.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.SAS.SAS (State, sas) where  import Control.Monad (foldM)
src/CPSA/Shapes/Shapes.hs view
@@ -6,12 +6,6 @@ -- modify it under the terms of the BSD License as published by the -- University of California. -{-# LANGUAGE CPP #-}--#if !(MIN_VERSION_base(4,13,0))-#define MonadFail Monad-#endif- module CPSA.Shapes.Shapes (Map, empty, shape) where  import qualified Data.IntMap as I
tst/aik.tst view
@@ -1,6 +1,6 @@ (herald "Anonymous identity protocol from TCG") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/aik.scm")  (defprotocol aikprot basic
tst/attest.tst view
@@ -1,6 +1,6 @@ (herald attest-door) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/attest.scm")  (defprotocol attest-door basic
tst/axiom2.tst view
@@ -1,6 +1,6 @@ (herald "Axiom 2 Protocol" (bound 20)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/axiom2.scm") (comment "Strand count bounded at 20") 
tst/blanchet.tst view
@@ -1,7 +1,7 @@ (herald "Blanchet's Simple Example Protocol"   (comment "There is a flaw in this protocol by design")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/blanchet.scm")  (defprotocol blanchet basic
− tst/bltk_example.lisp
@@ -1,23 +0,0 @@-(herald "bltk example" (algebra diffie-hellman)-  ;(noisochk)-(limit 100))--(defprotocol bltks diffie-hellman-	     (defrole init-		      (vars (I R name) (n m data))-		      (trace-			(send (enc I R n (bltk I R)))-			(recv (enc R I m (bltk I R))))-		      (uniq-orig n))-             (defrole resp-	              (vars (I R name) (n m data))-	              (trace-	        	(recv (enc I R n (bltk I R)))-	        	(send (enc R I m (bltk I R))))-	              (uniq-orig m))-             )--(defskeleton bltks-  (vars (I R name))-  (defstrand init 2 (I I) (R R))-  (non-orig (bltk I R)))
− tst/bltk_example.tst
@@ -1,950 +0,0 @@-(herald "bltk example" (algebra diffie-hellman) (limit 100))--(comment "CPSA 3.4.0")-(comment "All input read from bltk_example.lsp")-(comment "Step count limited to 100")--(defprotocol bltks diffie-hellman-  (defrole init-    (vars (I R name) (n m data))-    (trace (send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    (uniq-orig n))-  (defrole resp-    (vars (I R name) (n m data))-    (trace (recv (enc I R n (bltk I R))) (send (enc R I m (bltk I R))))-    (uniq-orig m)))--(defskeleton bltks-  (vars (n m data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (non-orig (bltk I R))-  (uniq-orig n)-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R)))))-  (label 0)-  (unrealized (0 1))-  (origs (n (0 0)))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand init 1 (n m) (I R) (R I))-  (precedes ((1 0) (0 1)))-  (non-orig (bltk I R))-  (uniq-orig n m)-  (operation encryption-test (added-strand init 1)-    (enc R I m (bltk I R)) (0 1))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((send (enc R I m (bltk I R)))))-  (label 1)-  (parent 0)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (m (1 0)) (n (0 0))))--(defskeleton bltks-  (vars (n data) (I name))-  (defstrand init 2 (n n) (m n) (I I) (R I))-  (non-orig (bltk I I))-  (uniq-orig n)-  (operation encryption-test (displaced 1 0 init 1)-    (enc I I m (bltk I I)) (0 1))-  (traces ((send (enc I I n (bltk I I))) (recv (enc I I n (bltk I I)))))-  (label 2)-  (parent 0)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R I) (n n) (m n))))-  (origs (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (precedes ((1 1) (0 1)))-  (non-orig (bltk I R))-  (uniq-orig n m)-  (operation encryption-test (added-strand resp 2)-    (enc R I m (bltk I R)) (0 1))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R)))))-  (label 3)-  (parent 0)-  (unrealized (1 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n) (m m) (I I) (R R))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (bltk I R))-  (uniq-orig n m)-  (operation encryption-test (displaced 2 0 init 1)-    (enc I R n-0 (bltk I R)) (1 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n (bltk I R))) (send (enc R I m (bltk I R)))))-  (label 4)-  (parent 3)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n (0 0)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand init 1 (n n-0) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 0) (1 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0)-  (operation encryption-test (added-strand init 1)-    (enc I R n-0 (bltk I R)) (1 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((send (enc I R n-0 (bltk I R)))))-  (label 5)-  (parent 3)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-0 (2 0)) (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0)-  (operation encryption-test (added-strand resp 2)-    (enc I R n-0 (bltk I R)) (1 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R)))))-  (label 6)-  (parent 3)-  (unrealized (2 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 data) (I name))-  (defstrand init 2 (n n) (m m) (I I) (R I))-  (defstrand resp 2 (n n-0) (m m) (I I) (R I))-  (defstrand resp 2 (n n) (m n-0) (I I) (R I))-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))-  (non-orig (bltk I I))-  (uniq-orig n m n-0)-  (operation encryption-test (displaced 3 0 init 1)-    (enc R I n-1 (bltk I R)) (2 0))-  (traces ((send (enc I I n (bltk I I))) (recv (enc I I m (bltk I I))))-    ((recv (enc I I n-0 (bltk I I))) (send (enc I I m (bltk I I))))-    ((recv (enc I I n (bltk I I))) (send (enc I I n-0 (bltk I I)))))-  (label 7)-  (parent 6)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R I) (n n) (m m))))-  (origs (n (0 0)) (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand init 1 (n n-1) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1)-  (operation encryption-test (added-strand init 1)-    (enc R I n-1 (bltk I R)) (2 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((send (enc R I n-1 (bltk I R)))))-  (label 8)-  (parent 6)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-1 (3 0)) (n-0 (2 1)) (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1)-  (operation encryption-test (added-strand resp 2)-    (enc R I n-1 (bltk I R)) (2 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R)))))-  (label 9)-  (parent 6)-  (unrealized (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n) (m n-1) (I I) (R R))-  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1)-  (operation encryption-test (displaced 4 0 init 1)-    (enc I R n-2 (bltk I R)) (3 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n (bltk I R))) (send (enc R I n-1 (bltk I R)))))-  (label 10)-  (parent 9)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n (0 0)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand init 1 (n n-2) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (3 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2)-  (operation encryption-test (added-strand init 1)-    (enc I R n-2 (bltk I R)) (3 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((send (enc I R n-2 (bltk I R)))))-  (label 11)-  (parent 9)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-2 (4 0)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2)-  (operation encryption-test (added-strand resp 2)-    (enc I R n-2 (bltk I R)) (3 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R)))))-  (label 12)-  (parent 9)-  (unrealized (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 data) (I name))-  (defstrand init 2 (n n) (m m) (I I) (R I))-  (defstrand resp 2 (n n-0) (m m) (I I) (R I))-  (defstrand resp 2 (n n-1) (m n-0) (I I) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R I))-  (defstrand resp 2 (n n) (m n-2) (I I) (R I))-  (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)))-  (non-orig (bltk I I))-  (uniq-orig n m n-0 n-1 n-2)-  (operation encryption-test (displaced 5 0 init 1)-    (enc R I n-3 (bltk I R)) (4 0))-  (traces ((send (enc I I n (bltk I I))) (recv (enc I I m (bltk I I))))-    ((recv (enc I I n-0 (bltk I I))) (send (enc I I m (bltk I I))))-    ((recv (enc I I n-1 (bltk I I))) (send (enc I I n-0 (bltk I I))))-    ((recv (enc I I n-2 (bltk I I))) (send (enc I I n-1 (bltk I I))))-    ((recv (enc I I n (bltk I I))) (send (enc I I n-2 (bltk I I)))))-  (label 13)-  (parent 12)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R I) (n n) (m m))))-  (origs (n (0 0)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand init 1 (n n-3) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 0) (4 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3)-  (operation encryption-test (added-strand init 1)-    (enc R I n-3 (bltk I R)) (4 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((send (enc R I n-3 (bltk I R)))))-  (label 14)-  (parent 12)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-3 (5 0)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1))-    (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3)-  (operation encryption-test (added-strand resp 2)-    (enc R I n-3 (bltk I R)) (4 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R)))))-  (label 15)-  (parent 12)-  (unrealized (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n) (m n-3) (I I) (R R))-  (precedes ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)) ((5 1) (4 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3)-  (operation encryption-test (displaced 6 0 init 1)-    (enc I R n-4 (bltk I R)) (5 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n (bltk I R))) (send (enc R I n-3 (bltk I R)))))-  (label 16)-  (parent 15)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n (0 0)) (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1))-    (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand init 1 (n n-4) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 0) (5 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4)-  (operation encryption-test (added-strand init 1)-    (enc I R n-4 (bltk I R)) (5 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((send (enc I R n-4 (bltk I R)))))-  (label 17)-  (parent 15)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-4 (6 0)) (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1))-    (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4)-  (operation encryption-test (added-strand resp 2)-    (enc I R n-4 (bltk I R)) (5 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R)))))-  (label 18)-  (parent 15)-  (unrealized (6 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 data) (I name))-  (defstrand init 2 (n n) (m m) (I I) (R I))-  (defstrand resp 2 (n n-0) (m m) (I I) (R I))-  (defstrand resp 2 (n n-1) (m n-0) (I I) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R I))-  (defstrand resp 2 (n n-3) (m n-2) (I I) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R I))-  (defstrand resp 2 (n n) (m n-4) (I I) (R I))-  (precedes ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))-  (non-orig (bltk I I))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4)-  (operation encryption-test (displaced 7 0 init 1)-    (enc R I n-5 (bltk I R)) (6 0))-  (traces ((send (enc I I n (bltk I I))) (recv (enc I I m (bltk I I))))-    ((recv (enc I I n-0 (bltk I I))) (send (enc I I m (bltk I I))))-    ((recv (enc I I n-1 (bltk I I))) (send (enc I I n-0 (bltk I I))))-    ((recv (enc I I n-2 (bltk I I))) (send (enc I I n-1 (bltk I I))))-    ((recv (enc I I n-3 (bltk I I))) (send (enc I I n-2 (bltk I I))))-    ((recv (enc I I n-4 (bltk I I))) (send (enc I I n-3 (bltk I I))))-    ((recv (enc I I n (bltk I I))) (send (enc I I n-4 (bltk I I)))))-  (label 19)-  (parent 18)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R I) (n n) (m m))))-  (origs (n (0 0)) (n-4 (6 1)) (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1))-    (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand init 1 (n n-5) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 0) (6 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5)-  (operation encryption-test (added-strand init 1)-    (enc R I n-5 (bltk I R)) (6 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((send (enc R I n-5 (bltk I R)))))-  (label 20)-  (parent 18)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-5 (7 0)) (n-4 (6 1)) (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1))-    (n-0 (2 1)) (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5)-  (operation encryption-test (added-strand resp 2)-    (enc R I n-5 (bltk I R)) (6 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R)))))-  (label 21)-  (parent 18)-  (unrealized (7 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n) (m n-5) (I I) (R R))-  (precedes ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5)-  (operation encryption-test (displaced 8 0 init 1)-    (enc I R n-6 (bltk I R)) (7 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n (bltk I R))) (send (enc R I n-5 (bltk I R)))))-  (label 22)-  (parent 21)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n (0 0)) (n-5 (7 1)) (n-4 (6 1)) (n-3 (5 1)) (n-2 (4 1))-    (n-1 (3 1)) (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand init 1 (n n-6) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 0) (7 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6)-  (operation encryption-test (added-strand init 1)-    (enc I R n-6 (bltk I R)) (7 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((send (enc I R n-6 (bltk I R)))))-  (label 23)-  (parent 21)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-6 (8 0)) (n-5 (7 1)) (n-4 (6 1)) (n-3 (5 1)) (n-2 (4 1))-    (n-1 (3 1)) (n-0 (2 1)) (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6)-  (operation encryption-test (added-strand resp 2)-    (enc I R n-6 (bltk I R)) (7 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R)))))-  (label 24)-  (parent 21)-  (unrealized (8 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 data) (I name))-  (defstrand init 2 (n n) (m m) (I I) (R I))-  (defstrand resp 2 (n n-0) (m m) (I I) (R I))-  (defstrand resp 2 (n n-1) (m n-0) (I I) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R I))-  (defstrand resp 2 (n n-3) (m n-2) (I I) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R I))-  (defstrand resp 2 (n n-5) (m n-4) (I I) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R I))-  (defstrand resp 2 (n n) (m n-6) (I I) (R I))-  (precedes ((0 0) (8 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0))-    ((8 1) (7 0)))-  (non-orig (bltk I I))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6)-  (operation encryption-test (displaced 9 0 init 1)-    (enc R I n-7 (bltk I R)) (8 0))-  (traces ((send (enc I I n (bltk I I))) (recv (enc I I m (bltk I I))))-    ((recv (enc I I n-0 (bltk I I))) (send (enc I I m (bltk I I))))-    ((recv (enc I I n-1 (bltk I I))) (send (enc I I n-0 (bltk I I))))-    ((recv (enc I I n-2 (bltk I I))) (send (enc I I n-1 (bltk I I))))-    ((recv (enc I I n-3 (bltk I I))) (send (enc I I n-2 (bltk I I))))-    ((recv (enc I I n-4 (bltk I I))) (send (enc I I n-3 (bltk I I))))-    ((recv (enc I I n-5 (bltk I I))) (send (enc I I n-4 (bltk I I))))-    ((recv (enc I I n-6 (bltk I I))) (send (enc I I n-5 (bltk I I))))-    ((recv (enc I I n (bltk I I))) (send (enc I I n-6 (bltk I I)))))-  (label 25)-  (parent 24)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R I) (n n) (m m))))-  (origs (n (0 0)) (n-6 (8 1)) (n-5 (7 1)) (n-4 (6 1)) (n-3 (5 1))-    (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand init 1 (n n-7) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0))-    ((9 0) (8 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7)-  (operation encryption-test (added-strand init 1)-    (enc R I n-7 (bltk I R)) (8 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((send (enc R I n-7 (bltk I R)))))-  (label 26)-  (parent 24)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-7 (9 0)) (n-6 (8 1)) (n-5 (7 1)) (n-4 (6 1)) (n-3 (5 1))-    (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1)) (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand resp 2 (n n-8) (m n-7) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0))-    ((9 1) (8 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7)-  (operation encryption-test (added-strand resp 2)-    (enc R I n-7 (bltk I R)) (8 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((recv (enc I R n-8 (bltk I R))) (send (enc R I n-7 (bltk I R)))))-  (label 27)-  (parent 24)-  (unrealized (9 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand resp 2 (n n) (m n-7) (I I) (R R))-  (precedes ((0 0) (9 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0))-    ((8 1) (7 0)) ((9 1) (8 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7)-  (operation encryption-test (displaced 10 0 init 1)-    (enc I R n-8 (bltk I R)) (9 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((recv (enc I R n (bltk I R))) (send (enc R I n-7 (bltk I R)))))-  (label 28)-  (parent 27)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n (0 0)) (n-7 (9 1)) (n-6 (8 1)) (n-5 (7 1)) (n-4 (6 1))-    (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand resp 2 (n n-8) (m n-7) (I I) (R R))-  (defstrand init 1 (n n-8) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0))-    ((9 1) (8 0)) ((10 0) (9 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8)-  (operation encryption-test (added-strand init 1)-    (enc I R n-8 (bltk I R)) (9 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((recv (enc I R n-8 (bltk I R))) (send (enc R I n-7 (bltk I R))))-    ((send (enc I R n-8 (bltk I R)))))-  (label 29)-  (parent 27)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R R) (n n) (m m))))-  (origs (n-8 (10 0)) (n-7 (9 1)) (n-6 (8 1)) (n-5 (7 1)) (n-4 (6 1))-    (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1)) (m (1 1))-    (n (0 0))))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 n-9 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand resp 2 (n n-8) (m n-7) (I I) (R R))-  (defstrand resp 2 (n n-9) (m n-8) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0))-    ((9 1) (8 0)) ((10 1) (9 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8)-  (operation encryption-test (added-strand resp 2)-    (enc I R n-8 (bltk I R)) (9 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((recv (enc I R n-8 (bltk I R))) (send (enc R I n-7 (bltk I R))))-    ((recv (enc R I n-9 (bltk I R))) (send (enc I R n-8 (bltk I R)))))-  (label 30)-  (parent 27)-  (unrealized (10 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 data) (I name))-  (defstrand init 2 (n n) (m m) (I I) (R I))-  (defstrand resp 2 (n n-0) (m m) (I I) (R I))-  (defstrand resp 2 (n n-1) (m n-0) (I I) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R I))-  (defstrand resp 2 (n n-3) (m n-2) (I I) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R I))-  (defstrand resp 2 (n n-5) (m n-4) (I I) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R I))-  (defstrand resp 2 (n n-7) (m n-6) (I I) (R I))-  (defstrand resp 2 (n n-8) (m n-7) (I I) (R I))-  (defstrand resp 2 (n n) (m n-8) (I I) (R I))-  (precedes ((0 0) (10 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0))-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (9 0)))-  (non-orig (bltk I I))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8)-  (operation encryption-test (displaced 11 0 init 1)-    (enc R I n-9 (bltk I R)) (10 0))-  (traces ((send (enc I I n (bltk I I))) (recv (enc I I m (bltk I I))))-    ((recv (enc I I n-0 (bltk I I))) (send (enc I I m (bltk I I))))-    ((recv (enc I I n-1 (bltk I I))) (send (enc I I n-0 (bltk I I))))-    ((recv (enc I I n-2 (bltk I I))) (send (enc I I n-1 (bltk I I))))-    ((recv (enc I I n-3 (bltk I I))) (send (enc I I n-2 (bltk I I))))-    ((recv (enc I I n-4 (bltk I I))) (send (enc I I n-3 (bltk I I))))-    ((recv (enc I I n-5 (bltk I I))) (send (enc I I n-4 (bltk I I))))-    ((recv (enc I I n-6 (bltk I I))) (send (enc I I n-5 (bltk I I))))-    ((recv (enc I I n-7 (bltk I I))) (send (enc I I n-6 (bltk I I))))-    ((recv (enc I I n-8 (bltk I I))) (send (enc I I n-7 (bltk I I))))-    ((recv (enc I I n (bltk I I))) (send (enc I I n-8 (bltk I I)))))-  (label 31)-  (parent 30)-  (unrealized)-  (shape)-  (maps ((0) ((I I) (R I) (n n) (m m))))-  (origs (n (0 0)) (n-8 (10 1)) (n-7 (9 1)) (n-6 (8 1)) (n-5 (7 1))-    (n-4 (6 1)) (n-3 (5 1)) (n-2 (4 1)) (n-1 (3 1)) (n-0 (2 1))-    (m (1 1))))--(comment "Strand bound exceeded--aborting run")--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 n-9 data) (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand resp 2 (n n-8) (m n-7) (I I) (R R))-  (defstrand resp 2 (n n-9) (m n-8) (I R) (R I))-  (defstrand init 1 (n n-9) (I R) (R I))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0))-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 0) (10 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 n-9)-  (operation encryption-test (added-strand init 1)-    (enc R I n-9 (bltk I R)) (10 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((recv (enc I R n-8 (bltk I R))) (send (enc R I n-7 (bltk I R))))-    ((recv (enc R I n-9 (bltk I R))) (send (enc I R n-8 (bltk I R))))-    ((send (enc R I n-9 (bltk I R)))))-  (label 32)-  (parent 30)-  (unrealized)-  (comment "aborted"))--(defskeleton bltks-  (vars (n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 n-9 n-10 data)-    (I R name))-  (defstrand init 2 (n n) (m m) (I I) (R R))-  (defstrand resp 2 (n n-0) (m m) (I I) (R R))-  (defstrand resp 2 (n n-1) (m n-0) (I R) (R I))-  (defstrand resp 2 (n n-2) (m n-1) (I I) (R R))-  (defstrand resp 2 (n n-3) (m n-2) (I R) (R I))-  (defstrand resp 2 (n n-4) (m n-3) (I I) (R R))-  (defstrand resp 2 (n n-5) (m n-4) (I R) (R I))-  (defstrand resp 2 (n n-6) (m n-5) (I I) (R R))-  (defstrand resp 2 (n n-7) (m n-6) (I R) (R I))-  (defstrand resp 2 (n n-8) (m n-7) (I I) (R R))-  (defstrand resp 2 (n n-9) (m n-8) (I R) (R I))-  (defstrand resp 2 (n n-10) (m n-9) (I I) (R R))-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)) ((8 1) (7 0))-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 1) (10 0)))-  (non-orig (bltk I R))-  (uniq-orig n m n-0 n-1 n-2 n-3 n-4 n-5 n-6 n-7 n-8 n-9)-  (operation encryption-test (added-strand resp 2)-    (enc R I n-9 (bltk I R)) (10 0))-  (traces ((send (enc I R n (bltk I R))) (recv (enc R I m (bltk I R))))-    ((recv (enc I R n-0 (bltk I R))) (send (enc R I m (bltk I R))))-    ((recv (enc R I n-1 (bltk I R))) (send (enc I R n-0 (bltk I R))))-    ((recv (enc I R n-2 (bltk I R))) (send (enc R I n-1 (bltk I R))))-    ((recv (enc R I n-3 (bltk I R))) (send (enc I R n-2 (bltk I R))))-    ((recv (enc I R n-4 (bltk I R))) (send (enc R I n-3 (bltk I R))))-    ((recv (enc R I n-5 (bltk I R))) (send (enc I R n-4 (bltk I R))))-    ((recv (enc I R n-6 (bltk I R))) (send (enc R I n-5 (bltk I R))))-    ((recv (enc R I n-7 (bltk I R))) (send (enc I R n-6 (bltk I R))))-    ((recv (enc I R n-8 (bltk I R))) (send (enc R I n-7 (bltk I R))))-    ((recv (enc R I n-9 (bltk I R))) (send (enc I R n-8 (bltk I R))))-    ((recv (enc I R n-10 (bltk I R))) (send (enc R I n-9 (bltk I R)))))-  (label 33)-  (parent 30)-  (unrealized (11 0))-  (comment "aborted"))
+ tst/bltk_or.scm view
@@ -0,0 +1,28 @@+(herald "Otway-Rees Protocol"+	(comment "Standard version using variables of sort mesg")+	(algebra diffie-hellman))++(defprotocol or diffie-hellman+  (defrole init (vars (a b s name) (na text) (k skey) (m text))+    (trace+     (send (cat m a b (enc na m a b (bltk a s))))+     (recv (cat m (enc na k (bltk a s))))))+  (defrole resp+    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))+    (trace+     (recv (cat m a b x))+     (send (cat m a b x (enc nb m a b (bltk b s))))+     (recv (cat m y (enc nb k (bltk b s))))+     (send y)))+  (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))+    (trace+     (recv (cat m a b (enc na m a b (bltk a s))+		(enc nb m a b (bltk b s))))+     (send (cat m (enc na k (bltk a s)) (enc nb k (bltk b s)))))+    (uniq-orig k)))++(defskeleton or+  (vars (nb text) (s a b name))+  (defstrand resp 4 (a a) (b b) (s s) (nb nb))+  (non-orig (bltk a s) (bltk b s))+  (uniq-orig nb))
+ tst/bltk_or.tst view
@@ -0,0 +1,400 @@+(herald "Otway-Rees Protocol"+  (comment "Standard version using variables of sort mesg")+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/bltk_or.scm")++(defprotocol or diffie-hellman+  (defrole init+    (vars (a b s name) (na text) (k skey) (m text))+    (trace (send (cat m a b (enc na m a b (bltk a s))))+      (recv (cat m (enc na k (bltk a s))))))+  (defrole resp+    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))+    (trace (recv (cat m a b x))+      (send (cat m a b x (enc nb m a b (bltk b s))))+      (recv (cat m y (enc nb k (bltk b s)))) (send y)))+  (defrole serv+    (vars (a b s name) (na nb text) (k skey) (m text))+    (trace+      (recv+        (cat m a b (enc na m a b (bltk a s)) (enc nb m a b (bltk b s))))+      (send (cat m (enc na k (bltk a s)) (enc nb k (bltk b s)))))+    (uniq-orig k)))++(defskeleton or+  (vars (x y mesg) (nb m text) (s a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb)+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y)))+  (label 0)+  (unrealized (0 2))+  (origs (nb (0 1)))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b s) (s b) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))+    (0 2))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y))+    ((recv+       (cat m-0 a-0 s (enc na m-0 a-0 s (bltk b a-0))+         (enc nb m-0 a-0 s (bltk s b))))+      (send (cat m-0 (enc na k (bltk b a-0)) (enc nb k (bltk s b))))))+  (label 1)+  (parent 0)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))+    (0 2))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y))+    ((recv+       (cat m-0 a-0 b (enc na m-0 a-0 b (bltk s a-0))+         (enc nb m-0 a-0 b (bltk s b))))+      (send (cat m-0 (enc na k (bltk s a-0)) (enc nb k (bltk s b))))))+  (label 2)+  (parent 0)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a s) (b b-0) (s b) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))+    (0 2))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y))+    ((recv+       (cat m-0 s b-0 (enc nb m-0 s b-0 (bltk s b))+         (enc nb-0 m-0 s b-0 (bltk b b-0))))+      (send (cat m-0 (enc nb k (bltk s b)) (enc nb-0 k (bltk b b-0))))))+  (label 3)+  (parent 0)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))+    (0 2))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y))+    ((recv+       (cat m-0 b b-0 (enc nb m-0 b b-0 (bltk s b))+         (enc nb-0 m-0 b b-0 (bltk s b-0))))+      (send (cat m-0 (enc nb k (bltk s b)) (enc nb-0 k (bltk s b-0))))))+  (label 4)+  (parent 0)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m na text) (a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk a b) (bltk b b))+  (uniq-orig nb k)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc nb m-0 a-0 s (bltk s b)) (1 0))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk b b))))+      (recv (cat m y (enc nb k (bltk b b)))) (send y))+    ((recv+       (cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b))))+      (send (cat m (enc na k (bltk a b)) (enc nb k (bltk b b))))))+  (label 5)+  (parent 1)+  (unrealized (1 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m na text) (s a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb k)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc nb m-0 a-0 b (bltk s b)) (1 0))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y))+    ((recv+       (cat m a b (enc na m a b (bltk s a)) (enc nb m a b (bltk s b))))+      (send (cat m (enc na k (bltk s a)) (enc nb k (bltk s b))))))+  (label 6)+  (parent 2)+  (seen 10)+  (unrealized (1 0))+  (comment "4 in cohort - 3 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m nb-0 text) (a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s a) (k k))+  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b b) (s b) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk a a) (bltk a b))+  (uniq-orig nb k)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc nb m-0 s b (bltk s b)) (1 0))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk a b))))+      (recv (cat m y (enc nb k (bltk a b)))) (send y))+    ((recv+       (cat m a b (enc nb m a b (bltk a b))+         (enc nb-0 m a b (bltk b b))))+      (send (cat m (enc nb k (bltk a b)) (enc nb-0 k (bltk b b))))))+  (label 7)+  (parent 3)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s a) (a a) (b b) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(defskeleton or+  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a))+  (uniq-orig nb k)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc nb m-0 b b (bltk s b)) (1 0))+  (traces+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))+      (recv (cat m y (enc nb k (bltk s a)))) (send y))+    ((recv+       (cat m a a (enc nb m a a (bltk s a))+         (enc nb-0 m a a (bltk s a))))+      (send (cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a))))))+  (label 8)+  (parent 4)+  (seen 13)+  (unrealized (1 0))+  (comment "3 in cohort - 2 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m na text) (a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))+  (defstrand init 1 (na na) (m m) (a a) (b b) (s b))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+  (non-orig (bltk a b) (bltk b b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand init 1)+    (enc na m a b (bltk a b)) (1 0))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk b b))))+      (recv (cat m y (enc nb k (bltk b b)))) (send y))+    ((recv+       (cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b))))+      (send (cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))))+    ((send (cat m a b (enc na m a b (bltk a b))))))+  (label 9)+  (parent 5)+  (seen 12)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton or+  (vars (x y x-0 mesg) (nb m na text) (a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))+  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b b) (s a))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (bltk a b) (bltk b b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand resp 2)+    (enc na m a b (bltk a b)) (1 0))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk b b))))+      (recv (cat m y (enc nb k (bltk b b)))) (send y))+    ((recv+       (cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b))))+      (send (cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))))+    ((recv (cat m a b x-0))+      (send (cat m a b x-0 (enc na m a b (bltk a b))))))+  (label 10)+  (parent 5)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s b) (a a) (b b) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(defskeleton or+  (vars (x y mesg) (nb m text) (a name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s a) (k k))+  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s a) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk a a))+  (uniq-orig nb k)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc na m a a (bltk a a)) (1 0))+  (traces+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk a a))))+      (recv (cat m y (enc nb k (bltk a a)))) (send y))+    ((recv+       (cat m a a (enc nb m a a (bltk a a)) (enc nb m a a (bltk a a))))+      (send (cat m (enc nb k (bltk a a)) (enc nb k (bltk a a))))))+  (label 11)+  (parent 5)+  (seen 13)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton or+  (vars (x y mesg) (nb m na text) (s a b name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))+  (defstrand init 1 (na na) (m m) (a a) (b b) (s s))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+  (non-orig (bltk s a) (bltk s b))+  (uniq-orig nb k)+  (operation encryption-test (added-strand init 1)+    (enc na m a b (bltk s a)) (1 0))+  (traces+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))+      (recv (cat m y (enc nb k (bltk s b)))) (send y))+    ((recv+       (cat m a b (enc na m a b (bltk s a)) (enc nb m a b (bltk s b))))+      (send (cat m (enc na k (bltk s a)) (enc nb k (bltk s b)))))+    ((send (cat m a b (enc na m a b (bltk s a))))))+  (label 12)+  (parent 6)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(defskeleton or+  (vars (x y mesg) (nb m text) (s a name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (bltk s a))+  (uniq-orig nb k)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc na m a a (bltk s a)) (1 0))+  (traces+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))+      (recv (cat m y (enc nb k (bltk s a)))) (send y))+    ((recv+       (cat m a a (enc nb m a a (bltk s a)) (enc nb m a a (bltk s a))))+      (send (cat m (enc nb k (bltk s a)) (enc nb k (bltk s a))))))+  (label 13)+  (parent 6)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(defskeleton or+  (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (bltk s a))+  (uniq-orig nb k)+  (operation encryption-test (added-strand resp 2)+    (enc na m a a (bltk s a)) (1 0))+  (traces+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))+      (recv (cat m y (enc nb k (bltk s a)))) (send y))+    ((recv+       (cat m a a (enc na m a a (bltk s a)) (enc nb m a a (bltk s a))))+      (send (cat m (enc na k (bltk s a)) (enc nb k (bltk s a)))))+    ((recv (cat m a a x-0))+      (send (cat m a a x-0 (enc na m a a (bltk s a))))))+  (label 14)+  (parent 6)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(defskeleton or+  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))+  (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+  (non-orig (bltk s a))+  (uniq-orig nb k)+  (operation encryption-test (added-strand init 1)+    (enc nb-0 m a a (bltk s a)) (1 0))+  (traces+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))+      (recv (cat m y (enc nb k (bltk s a)))) (send y))+    ((recv+       (cat m a a (enc nb m a a (bltk s a))+         (enc nb-0 m a a (bltk s a))))+      (send (cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))))+    ((send (cat m a a (enc nb-0 m a a (bltk s a))))))+  (label 15)+  (parent 8)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(defskeleton or+  (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey))+  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))+  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))+  (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (bltk s a))+  (uniq-orig nb k)+  (operation encryption-test (added-strand resp 2)+    (enc nb-0 m a a (bltk s a)) (1 0))+  (traces+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))+      (recv (cat m y (enc nb k (bltk s a)))) (send y))+    ((recv+       (cat m a a (enc nb m a a (bltk s a))+         (enc nb-0 m a a (bltk s a))))+      (send (cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))))+    ((recv (cat m a a x-0))+      (send (cat m a a x-0 (enc nb-0 m a a (bltk s a))))))+  (label 16)+  (parent 8)+  (unrealized)+  (shape)+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))+  (origs (k (1 1)) (nb (0 1))))++(comment "Nothing left to do")
tst/bltk_test.tst view
@@ -1,6 +1,6 @@ (herald "bltk Test File" (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/bltk_test.scm")  (defprotocol test diffie-hellman
tst/checktst view
@@ -3,7 +3,7 @@ for f in *.tst do   b=`basename $f .tst`-  if test ! -f $b.scm -a ! -f $b.lsp+  if test ! -f $b.scm -a ! -f $b.lsp -a ! -f $b.prot -a ! -f $b.lisp   then     echo $f   fi
+ tst/comment.scm view
@@ -0,0 +1,11 @@+(herald comment)++(defprotocol comment basic+  (defrole comment (vars (x text))+    (trace (recv x))+    (comment "role"))+  (comment "protocol"))++(defskeleton comment (vars)+  (defstrand comment 1)+  (comment "skeleton"))
+ tst/comment.tst view
@@ -0,0 +1,21 @@+(herald comment)++(comment "CPSA 3.6.8")+(comment "All input read from tst/comment.scm")++(defprotocol comment basic+  (defrole comment (vars (x text)) (trace (recv x)) (comment "role"))+  (comment "protocol"))++(defskeleton comment+  (vars (x text))+  (defstrand comment 1 (x x))+  (comment "skeleton")+  (traces ((recv x)))+  (label 0)+  (unrealized)+  (shape)+  (maps ((0) ((x x))))+  (origs))++(comment "Nothing left to do")
tst/comp_test.tst view
@@ -1,6 +1,6 @@ (herald "Main Example") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/comp_test.scm")  (defprotocol main-ex-src basic
+ tst/cpsagraphtst view
@@ -0,0 +1,12 @@+#! /bin/sh++# Graph all expected test output.++PROG=cpsagraph++for i in *.tst+do+  o=`basename $i .tst`_tst.xhtml+  echo $PROG -o $o $i+  $PROG -o $o $i+done
tst/dh-ca.tst view
@@ -1,6 +1,6 @@ (herald dhca (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/dh-ca.scm")  (defprotocol dhca diffie-hellman@@ -487,7 +487,7 @@   (label 14)   (parent 7)   (unrealized (4 0))-  (comment "1 in cohort - 1 not yet seen"))+  (comment "2 in cohort - 2 not yet seen"))  (defskeleton dhca   (vars (n text) (a ca a-0 b ca-0 name) (x y rndx))@@ -817,20 +817,18 @@   (comment "1 in cohort - 1 not yet seen"))  (defskeleton dhca-  (vars (n text) (a b ca name) (x y rndx) (w expt))+  (vars (n text) (a b ca name) (x y rndx))   (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))   (defstrand ca 2 (subject a) (ca ca) (x x))   (defstrand ca 2 (subject b) (ca ca) (x y))   (defstrand resp 1 (b b) (y y))   (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) (mul x y (rec w))) w))+  (deflistener (cat (exp (gen) x) y))   (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))     ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))   (non-orig (privk a) (privk b) (privk ca))   (uniq-gen x y)-  (precur (5 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x y (rec w))) w))+  (operation nonce-test (added-listener (cat (exp (gen) x) y))     (exp (gen) (mul x y)) (4 0))   (traces     ((send (enc "reg" (exp (gen) x) a (privk a)))@@ -846,14 +844,49 @@       (send (enc (exp (gen) y) b (privk ca))))     ((send (enc "reg" (exp (gen) y) b (privk b))))     ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) (mul x y (rec w))) w))-      (send (cat (exp (gen) (mul x y (rec w))) w))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))   (label 24)   (parent 14)   (unrealized (5 0))-  (comment "4 in cohort - 4 not yet seen"))+  (dead)+  (comment "empty cohort"))  (defskeleton dhca+  (vars (n text) (a b ca name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (defstrand ca 2 (subject b) (ca ca) (x y))+  (defstrand resp 1 (b b) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) x) a (privk a)))+      (recv (enc (exp (gen) x) a (privk ca)))+      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+      (recv+        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+          (enc n (exp (gen) (mul x y)))))+      (send (enc "check" n (exp (gen) (mul x y)))))+    ((recv (enc "reg" (exp (gen) x) a (privk a)))+      (send (enc (exp (gen) x) a (privk ca))))+    ((recv (enc "reg" (exp (gen) y) b (privk b)))+      (send (enc (exp (gen) y) b (privk ca))))+    ((send (enc "reg" (exp (gen) y) b (privk b))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 25)+  (parent 14)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhca   (vars (n text) (a ca name) (x rndx))   (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))   (defstrand ca 2 (subject a) (ca ca) (x x))@@ -879,7 +912,7 @@     ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))     ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))     ((recv x) (send x)))-  (label 25)+  (label 26)   (parent 16)   (unrealized (4 0))   (dead)@@ -925,7 +958,7 @@       (send (enc (exp (gen) y-0) b (privk ca-0))))     ((recv (enc "reg" (exp (gen) (mul y y (rec y-0))) a-0 (privk a-0)))       (send (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)))))-  (label 26)+  (label 27)   (parent 19)   (unrealized (5 0))   (dead)@@ -958,7 +991,7 @@       (send (enc (exp (gen) y) a (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))-  (label 27)+  (label 28)   (parent 20)   (unrealized (3 0) (4 0))   (comment "1 in cohort - 1 not yet seen"))@@ -990,7 +1023,7 @@       (send (enc (exp (gen) y) a (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))-  (label 28)+  (label 29)   (parent 20)   (unrealized (4 0))   (dead)@@ -1026,7 +1059,7 @@     ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))       (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))     ((send (enc "reg" (exp (gen) y-0) b (privk b)))))-  (label 29)+  (label 30)   (parent 20)   (unrealized (3 0) (4 0))   (dead)@@ -1062,7 +1095,7 @@       (send         (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))           (enc n (exp (gen) (mul y x)))))))-  (label 30)+  (label 31)   (parent 21)   (unrealized)   (shape)@@ -1102,7 +1135,7 @@           (enc n (exp (gen) (mul y x))))))     ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))       (send (enc (exp (gen) x) a-0 (privk ca)))))-  (label 31)+  (label 32)   (parent 21)   (unrealized (4 0))   (comment "1 in cohort - 1 not yet seen"))@@ -1140,9 +1173,9 @@           (enc n (exp (gen) (mul y x))))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca)))))-  (label 32)+  (label 33)   (parent 22)-  (seen 30)+  (seen 31)   (unrealized)   (comment "1 in cohort - 0 not yet seen")) @@ -1183,7 +1216,7 @@       (send (enc (exp (gen) y) b (privk ca-0))))     ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))       (send (enc (exp (gen) x) a-0 (privk ca-0)))))-  (label 33)+  (label 34)   (parent 22)   (unrealized (5 0))   (comment "1 in cohort - 1 not yet seen"))@@ -1231,158 +1264,13 @@       (send (enc (exp (gen) y-0) b-0 (privk ca-0))))     ((recv (enc "reg" (exp (gen) (mul x y (rec y-0))) a-0 (privk a-0)))       (send (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)))))-  (label 34)+  (label 35)   (parent 23)   (unrealized (6 0))   (dead)   (comment "empty cohort"))  (defskeleton dhca-  (vars (n text) (a b ca name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))-  (defstrand ca 2 (subject a) (ca ca) (x x))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand resp 1 (b b) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (gen) (mul x y)))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (uniq-gen x y)-  (precur (5 0))-  (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)-    (5 0))-  (traces-    ((send (enc "reg" (exp (gen) x) a (privk a)))-      (recv (enc (exp (gen) x) a (privk ca)))-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul x y)))))-      (send (enc "check" n (exp (gen) (mul x y)))))-    ((recv (enc "reg" (exp (gen) x) a (privk a)))-      (send (enc (exp (gen) x) a (privk ca))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((send (enc "reg" (exp (gen) y) b (privk b))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))-  (label 35)-  (parent 24)-  (unrealized (4 0) (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca name) (y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x y-0) (y y))-  (defstrand ca 2 (subject a) (ca ca) (x y-0))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand resp 1 (b b) (y y))-  (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (exp (gen) y-0) y))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen y y-0)-  (operation nonce-test (displaced 6 0 resp 1) (exp (gen) y-1) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) y-0) a (privk a)))-      (recv (enc (exp (gen) y-0) a (privk ca)))-      (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (send (enc "check" n (exp (gen) (mul y y-0)))))-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))-      (send (enc (exp (gen) y-0) a (privk ca))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((send (enc "reg" (exp (gen) y) b (privk b))))-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))-  (label 36)-  (parent 24)-  (unrealized (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))-  (defstrand ca 2 (subject a) (ca ca) (x x))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand resp 1 (b b) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen x y)-  (operation nonce-test (displaced 6 3 resp 1) (exp (gen) y-0) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) x) a (privk a)))-      (recv (enc (exp (gen) x) a (privk ca)))-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul x y)))))-      (send (enc "check" n (exp (gen) (mul x y)))))-    ((recv (enc "reg" (exp (gen) x) a (privk a)))-      (send (enc (exp (gen) x) a (privk ca))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((send (enc "reg" (exp (gen) y) b (privk b))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 37)-  (parent 24)-  (unrealized (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca b-0 name) (x y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))-  (defstrand ca 2 (subject a) (ca ca) (x x))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand resp 1 (b b) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y-0) (mul x y (rec y-0))))-  (defstrand resp 1 (b b-0) (y y-0))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0))-    ((6 0) (5 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen x y y-0)-  (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) x) a (privk a)))-      (recv (enc (exp (gen) x) a (privk ca)))-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul x y)))))-      (send (enc "check" n (exp (gen) (mul x y)))))-    ((recv (enc "reg" (exp (gen) x) a (privk a)))-      (send (enc (exp (gen) x) a (privk ca))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((send (enc "reg" (exp (gen) y) b (privk b))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y-0) (mul x y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x y (rec y-0)))))-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))-  (label 38)-  (parent 24)-  (unrealized (4 0) (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca   (vars (n text) (a ca name) (y rndx))   (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))   (defstrand ca 2 (subject a) (ca ca) (x y))@@ -1411,8 +1299,8 @@     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))     ((recv y) (send y)))-  (label 39)-  (parent 27)+  (label 36)+  (parent 28)   (unrealized (5 0))   (dead)   (comment "empty cohort"))@@ -1450,8 +1338,8 @@           (enc n (exp (gen) (mul y y-0))))))     ((recv (enc "reg" (exp (gen) y-0) a (privk a)))       (send (enc (exp (gen) y-0) a (privk ca)))))-  (label 40)-  (parent 31)+  (label 37)+  (parent 32)   (unrealized)   (shape)   (maps ((0) ((x y-0) (a a) (b b) (ca ca) (y y) (n n))))@@ -1494,8 +1382,8 @@       (send (enc (exp (gen) y) b (privk ca-0))))     ((recv (enc "reg" (exp (gen) y-0) a (privk a)))       (send (enc (exp (gen) y-0) a (privk ca-0)))))-  (label 41)-  (parent 33)+  (label 38)+  (parent 34)   (unrealized)   (shape)   (maps ((0) ((x y-0) (a a) (b b) (ca ca) (y y) (n n))))@@ -1549,7 +1437,7 @@         (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))           (enc n (exp (gen) (mul y x)))))       (recv (enc "check" n (exp (gen) (mul y x))))))-  (label 42)+  (label 39)   (unrealized (0 1) (0 2))   (origs (n (0 3)))   (comment "1 in cohort - 1 not yet seen"))@@ -1574,8 +1462,8 @@       (recv (enc "check" n (exp (gen) (mul x y)))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca)))))-  (label 43)-  (parent 42)+  (label 40)+  (parent 39)   (unrealized (0 2))   (comment "2 in cohort - 2 not yet seen")) @@ -1599,8 +1487,8 @@       (recv (enc "check" n (exp (gen) (mul y y)))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca)))))-  (label 44)-  (parent 43)+  (label 41)+  (parent 40)   (unrealized (0 4))   (comment "2 in cohort - 2 not yet seen")) @@ -1627,8 +1515,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca)))))-  (label 45)-  (parent 43)+  (label 42)+  (parent 40)   (unrealized (2 0))   (comment "2 in cohort - 2 not yet seen")) @@ -1662,8 +1550,8 @@           (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))           (enc n (exp (gen) (mul y y)))))       (send (enc "check" n (exp (gen) (mul y y))))))-  (label 46)-  (parent 44)+  (label 43)+  (parent 41)   (unrealized (2 1) (2 3))   (comment "1 in cohort - 1 not yet seen")) @@ -1689,8 +1577,8 @@     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))-  (label 47)-  (parent 44)+  (label 44)+  (parent 41)   (unrealized (2 0))   (comment "1 in cohort - 1 not yet seen")) @@ -1717,8 +1605,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca)))))-  (label 48)-  (parent 45)+  (label 45)+  (parent 42)   (unrealized (0 4))   (comment "2 in cohort - 2 not yet seen")) @@ -1747,8 +1635,8 @@     ((recv (enc "reg" (exp (gen) y-0) a (privk a)))       (send (enc (exp (gen) y-0) a (privk ca))))     ((send (enc "reg" (exp (gen) y-0) a (privk a)))))-  (label 49)-  (parent 45)+  (label 46)+  (parent 42)   (unrealized (0 4))   (comment "3 in cohort - 3 not yet seen")) @@ -1786,8 +1674,8 @@       (send (enc "check" n (exp (gen) (mul y y)))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca-0)))))-  (label 50)-  (parent 46)+  (label 47)+  (parent 43)   (unrealized (2 3))   (comment "1 in cohort - 1 not yet seen")) @@ -1819,8 +1707,8 @@     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (exp (gen) (mul y y (rec w))) w))       (send (cat (exp (gen) (mul y y (rec w))) w))))-  (label 51)-  (parent 47)+  (label 48)+  (parent 44)   (unrealized (3 0))   (comment "3 in cohort - 3 not yet seen")) @@ -1858,8 +1746,8 @@           (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))           (enc n (exp (gen) (mul y y)))))       (send (enc "check" n (exp (gen) (mul y y))))))-  (label 52)-  (parent 48)+  (label 49)+  (parent 45)   (unrealized (3 1) (3 3))   (comment "1 in cohort - 1 not yet seen")) @@ -1889,8 +1777,8 @@     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))-  (label 53)-  (parent 48)+  (label 50)+  (parent 45)   (unrealized (3 0))   (comment "1 in cohort - 1 not yet seen")) @@ -1926,8 +1814,8 @@         (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))           (enc n (exp (gen) (mul y x)))))       (send (enc "check" n (exp (gen) (mul y x))))))-  (label 54)-  (parent 49)+  (label 51)+  (parent 46)   (unrealized (3 1) (3 3))   (comment "2 in cohort - 2 not yet seen")) @@ -1967,8 +1855,8 @@           (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))           (enc n (exp (gen) (mul y y-0)))))       (send (enc "check" n (exp (gen) (mul y y-0))))))-  (label 55)-  (parent 49)+  (label 52)+  (parent 46)   (unrealized (4 1) (4 3))   (comment "1 in cohort - 1 not yet seen")) @@ -2000,10 +1888,10 @@       (send (enc (exp (gen) y-0) a (privk ca))))     ((send (enc "reg" (exp (gen) y-0) a (privk a))))     ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))-  (label 56)-  (parent 49)+  (label 53)+  (parent 46)   (unrealized (4 0))-  (comment "1 in cohort - 1 not yet seen"))+  (comment "2 in cohort - 2 not yet seen"))  (defskeleton dhca   (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))@@ -2043,8 +1931,8 @@       (send (enc (exp (gen) x) a (privk ca-0))))     ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))       (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))-  (label 57)-  (parent 50)+  (label 54)+  (parent 47)   (unrealized (4 0))   (dead)   (comment "empty cohort"))@@ -2074,8 +1962,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))-  (label 58)-  (parent 51)+  (label 55)+  (parent 48)   (unrealized (2 0) (3 0))   (comment "1 in cohort - 1 not yet seen")) @@ -2104,8 +1992,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))-  (label 59)-  (parent 51)+  (label 56)+  (parent 48)   (unrealized (3 0))   (dead)   (comment "empty cohort"))@@ -2138,8 +2026,8 @@     ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))       (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))     ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))-  (label 60)-  (parent 51)+  (label 57)+  (parent 48)   (unrealized (2 0) (3 0))   (dead)   (comment "empty cohort"))@@ -2181,8 +2069,8 @@       (send (enc "check" n (exp (gen) (mul y y)))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca-0)))))-  (label 61)-  (parent 52)+  (label 58)+  (parent 49)   (unrealized (3 3))   (comment "1 in cohort - 1 not yet seen")) @@ -2217,8 +2105,8 @@     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (exp (gen) (mul y y (rec w))) w))       (send (cat (exp (gen) (mul y y (rec w))) w))))-  (label 62)-  (parent 53)+  (label 59)+  (parent 50)   (unrealized (4 0))   (comment "3 in cohort - 3 not yet seen")) @@ -2254,8 +2142,8 @@         (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))           (enc n (exp (gen) (mul y x)))))       (send (enc "check" n (exp (gen) (mul y x))))))-  (label 63)-  (parent 54)+  (label 60)+  (parent 51)   (unrealized (3 3))   (comment "2 in cohort - 2 not yet seen")) @@ -2294,8 +2182,8 @@       (send (enc "check" n (exp (gen) (mul y x)))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca-0)))))-  (label 64)-  (parent 54)+  (label 61)+  (parent 51)   (unrealized (3 3))   (comment "2 in cohort - 2 not yet seen")) @@ -2338,27 +2226,25 @@       (send (enc "check" n (exp (gen) (mul y y-0)))))     ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))       (send (enc (exp (gen) x) a-0 (privk ca-0)))))-  (label 65)-  (parent 55)+  (label 62)+  (parent 52)   (unrealized (4 3))   (comment "1 in cohort - 1 not yet seen"))  (defskeleton dhca-  (vars (n text) (a b ca name) (y y-0 rndx) (w expt))+  (vars (n text) (a b ca name) (y y-0 rndx))   (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))   (defstrand ca 2 (subject b) (ca ca) (x y))   (defstrand ca 2 (subject a) (ca ca) (x y-0))   (defstrand resp 1 (b a) (y y-0))   (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (exp (gen) (mul y y-0 (rec w))) w))+  (deflistener (cat (exp (gen) y) y-0))   (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))     ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))   (non-orig (privk a) (privk b) (privk ca))   (uniq-gen y y-0)   (uniq-orig n)-  (precur (5 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y y-0 (rec w))) w))+  (operation nonce-test (added-listener (cat (exp (gen) y) y-0))     (exp (gen) (mul y y-0)) (4 0))   (traces     ((send (enc "reg" (exp (gen) y) b (privk b)))@@ -2374,14 +2260,50 @@       (send (enc (exp (gen) y-0) a (privk ca))))     ((send (enc "reg" (exp (gen) y-0) a (privk a))))     ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (exp (gen) (mul y y-0 (rec w))) w))-      (send (cat (exp (gen) (mul y y-0 (rec w))) w))))-  (label 66)-  (parent 56)+    ((recv (cat (exp (gen) y) y-0)) (send (cat (exp (gen) y) y-0))))+  (label 63)+  (parent 53)   (unrealized (5 0))-  (comment "4 in cohort - 4 not yet seen"))+  (dead)+  (comment "empty cohort"))  (defskeleton dhca+  (vars (n text) (a b ca name) (y y-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))+  (defstrand ca 2 (subject b) (ca ca) (x y))+  (defstrand ca 2 (subject a) (ca ca) (x y-0))+  (defstrand resp 1 (b a) (y y-0))+  (deflistener (exp (gen) (mul y y-0)))+  (deflistener (cat (exp (gen) y-0) y))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen y y-0)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) y-0) y))+    (exp (gen) (mul y y-0)) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) y) b (privk b)))+      (recv (enc (exp (gen) y) b (privk ca)))+      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))+      (send+        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))+          (enc n (exp (gen) (mul y y-0)))))+      (recv (enc "check" n (exp (gen) (mul y y-0)))))+    ((recv (enc "reg" (exp (gen) y) b (privk b)))+      (send (enc (exp (gen) y) b (privk ca))))+    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))+      (send (enc (exp (gen) y-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) y-0) a (privk a))))+    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))+    ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))+  (label 64)+  (parent 53)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhca   (vars (n text) (b ca name) (y rndx))   (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))   (defstrand ca 2 (subject b) (ca ca) (x y))@@ -2408,8 +2330,8 @@     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))     ((recv y) (send y)))-  (label 67)-  (parent 58)+  (label 65)+  (parent 55)   (unrealized (4 0))   (dead)   (comment "empty cohort"))@@ -2455,8 +2377,8 @@       (send (enc (exp (gen) x) a (privk ca-0))))     ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))       (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))-  (label 68)-  (parent 61)+  (label 66)+  (parent 58)   (unrealized (5 0))   (dead)   (comment "empty cohort"))@@ -2489,8 +2411,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))-  (label 69)-  (parent 62)+  (label 67)+  (parent 59)   (unrealized (3 0) (4 0))   (comment "1 in cohort - 1 not yet seen")) @@ -2522,8 +2444,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))-  (label 70)-  (parent 62)+  (label 68)+  (parent 59)   (unrealized (4 0))   (dead)   (comment "empty cohort"))@@ -2559,8 +2481,8 @@     ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))       (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))     ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))-  (label 71)-  (parent 62)+  (label 69)+  (parent 59)   (unrealized (3 0) (4 0))   (dead)   (comment "empty cohort"))@@ -2597,8 +2519,8 @@         (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))           (enc n (exp (gen) (mul x y)))))       (send (enc "check" n (exp (gen) (mul x y))))))-  (label 72)-  (parent 63)+  (label 70)+  (parent 60)   (unrealized)   (shape)   (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (x x))))@@ -2640,8 +2562,8 @@       (send (enc "check" n (exp (gen) (mul x y)))))     ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))       (send (enc (exp (gen) y) b-0 (privk ca)))))-  (label 73)-  (parent 63)+  (label 71)+  (parent 60)   (unrealized (4 0))   (comment "1 in cohort - 1 not yet seen")) @@ -2680,8 +2602,8 @@       (send (enc "check" n (exp (gen) (mul x y)))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca)))))-  (label 74)-  (parent 64)+  (label 72)+  (parent 61)   (unrealized)   (shape)   (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (x x))))@@ -2726,8 +2648,8 @@       (send (enc (exp (gen) x) a (privk ca-0))))     ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))       (send (enc (exp (gen) y) b-0 (privk ca-0)))))-  (label 75)-  (parent 64)+  (label 73)+  (parent 61)   (unrealized (5 0))   (comment "1 in cohort - 1 not yet seen")) @@ -2775,162 +2697,13 @@       (send (enc (exp (gen) x) a-0 (privk ca-0))))     ((recv (enc "reg" (exp (gen) (mul y y-0 (rec x))) b-0 (privk b-0)))       (send (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)))))-  (label 76)-  (parent 65)+  (label 74)+  (parent 62)   (unrealized (6 0))   (dead)   (comment "empty cohort"))  (defskeleton dhca-  (vars (n text) (a b ca name) (y y-0 rndx))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand ca 2 (subject a) (ca ca) (x y-0))-  (defstrand resp 1 (b a) (y y-0))-  (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (gen) (mul y y-0)))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (uniq-gen y y-0)-  (uniq-orig n)-  (precur (5 0))-  (operation nonce-test (contracted (y-1 y) (y-2 y-0) (w (mul y y-0)))-    (gen) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) y) b (privk b)))-      (recv (enc (exp (gen) y) b (privk ca)))-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))-      (send-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (recv (enc "check" n (exp (gen) (mul y y-0)))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))-      (send (enc (exp (gen) y-0) a (privk ca))))-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (gen) (mul y y-0))) (send (cat (gen) (mul y y-0)))))-  (label 77)-  (parent 66)-  (unrealized (4 0) (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca name) (y y-0 rndx))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y-0) (x y))-  (defstrand ca 2 (subject b) (ca ca) (x y-0))-  (defstrand ca 2 (subject a) (ca ca) (x y))-  (defstrand resp 1 (b a) (y y))-  (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (exp (gen) y-0) y))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen y y-0)-  (uniq-orig n)-  (operation nonce-test (displaced 6 0 resp 1) (exp (gen) y-1) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) y-0) b (privk b)))-      (recv (enc (exp (gen) y-0) b (privk ca)))-      (recv (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))-      (send-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (recv (enc "check" n (exp (gen) (mul y y-0)))))-    ((recv (enc "reg" (exp (gen) y-0) b (privk b)))-      (send (enc (exp (gen) y-0) b (privk ca))))-    ((recv (enc "reg" (exp (gen) y) a (privk a)))-      (send (enc (exp (gen) y) a (privk ca))))-    ((send (enc "reg" (exp (gen) y) a (privk a))))-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))-  (label 78)-  (parent 66)-  (unrealized (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca name) (y y-0 rndx))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand ca 2 (subject a) (ca ca) (x y-0))-  (defstrand resp 1 (b a) (y y-0))-  (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (exp (gen) y-0) y))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen y y-0)-  (uniq-orig n)-  (operation nonce-test (displaced 6 3 resp 1) (exp (gen) y-1) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) y) b (privk b)))-      (recv (enc (exp (gen) y) b (privk ca)))-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))-      (send-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (recv (enc "check" n (exp (gen) (mul y y-0)))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))-      (send (enc (exp (gen) y-0) a (privk ca))))-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))-  (label 79)-  (parent 66)-  (unrealized (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca b-0 name) (y y-0 y-1 rndx))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand ca 2 (subject a) (ca ca) (x y-0))-  (defstrand resp 1 (b a) (y y-0))-  (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (exp (gen) y-1) (mul y y-0 (rec y-1))))-  (defstrand resp 1 (b b-0) (y y-1))-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0))-    ((6 0) (5 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen y y-0 y-1)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 1) (exp (gen) y-1) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) y) b (privk b)))-      (recv (enc (exp (gen) y) b (privk ca)))-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))-      (send-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (recv (enc "check" n (exp (gen) (mul y y-0)))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))-      (send (enc (exp (gen) y-0) a (privk ca))))-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (exp (gen) y-1) (mul y y-0 (rec y-1))))-      (send (cat (exp (gen) y-1) (mul y y-0 (rec y-1)))))-    ((send (enc "reg" (exp (gen) y-1) b-0 (privk b-0)))))-  (label 80)-  (parent 66)-  (unrealized (4 0) (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca   (vars (n text) (b ca name) (y rndx))   (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))   (defstrand ca 2 (subject b) (ca ca) (x y))@@ -2960,8 +2733,8 @@     ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))     ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))     ((recv y) (send y)))-  (label 81)-  (parent 69)+  (label 75)+  (parent 67)   (unrealized (5 0))   (dead)   (comment "empty cohort"))@@ -3002,9 +2775,9 @@       (send (enc "check" n (exp (gen) (mul x y)))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca)))))-  (label 82)-  (parent 73)-  (seen 72)+  (label 76)+  (parent 71)+  (seen 70)   (unrealized)   (comment "1 in cohort - 0 not yet seen")) @@ -3047,8 +2820,8 @@       (send (enc (exp (gen) x) a (privk ca-0))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca-0)))))-  (label 83)-  (parent 75)+  (label 77)+  (parent 73)   (unrealized)   (shape)   (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (x x))))@@ -3111,7 +2884,7 @@         (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))           (enc n (exp (gen) (mul x y)))))       (recv (enc "check" n (exp (gen) (mul x y))))))-  (label 84)+  (label 78)   (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))   (preskeleton)   (origs (n (1 3)))@@ -3142,8 +2915,8 @@         (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))           (enc n (exp (gen) (mul x y)))))       (recv (enc "check" n (exp (gen) (mul x y))))))-  (label 85)-  (parent 84)+  (label 79)+  (parent 78)   (unrealized (0 1) (1 1) (1 2) (1 4))   (origs (n (1 3)))   (comment "1 in cohort - 1 not yet seen"))@@ -3176,8 +2949,8 @@       (recv (enc "check" n (exp (gen) (mul x y)))))     ((recv (enc "reg" (exp (gen) y) b (privk b)))       (send (enc (exp (gen) y) b (privk ca)))))-  (label 86)-  (parent 85)+  (label 80)+  (parent 79)   (unrealized (0 1) (1 2) (1 4))   (comment "1 in cohort - 1 not yet seen")) @@ -3213,8 +2986,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca)))))-  (label 87)-  (parent 86)+  (label 81)+  (parent 80)   (unrealized (0 1) (1 4))   (comment "3 in cohort - 3 not yet seen")) @@ -3250,8 +3023,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca)))))-  (label 88)-  (parent 87)+  (label 82)+  (parent 81)   (unrealized (0 1))   (comment "2 in cohort - 2 not yet seen")) @@ -3298,8 +3071,8 @@           (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0))           (enc n (exp (gen) (mul y x)))))       (send (enc "check" n (exp (gen) (mul y x))))))-  (label 89)-  (parent 87)+  (label 83)+  (parent 81)   (unrealized (0 1) (4 1) (4 3))   (comment "1 in cohort - 1 not yet seen")) @@ -3337,10 +3110,10 @@     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca))))     ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))-  (label 90)-  (parent 87)+  (label 84)+  (parent 81)   (unrealized (0 1) (4 0))-  (comment "1 in cohort - 1 not yet seen"))+  (comment "2 in cohort - 2 not yet seen"))  (defskeleton dhca   (vars (n text) (a b ca name) (y x rndx))@@ -3374,8 +3147,8 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca)))))-  (label 91)-  (parent 88)+  (label 85)+  (parent 82)   (unrealized)   (shape)   (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))@@ -3416,8 +3189,8 @@       (send (enc (exp (gen) x) a (privk ca))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca)))))-  (label 92)-  (parent 88)+  (label 86)+  (parent 82)   (unrealized)   (shape)   (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))@@ -3470,28 +3243,26 @@       (send (enc "check" n (exp (gen) (mul y x)))))     ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))       (send (enc (exp (gen) x-0) a-0 (privk ca-0)))))-  (label 93)-  (parent 89)+  (label 87)+  (parent 83)   (unrealized (0 1) (4 3))   (comment "1 in cohort - 1 not yet seen"))  (defskeleton dhca-  (vars (n text) (a b ca name) (y x rndx) (w expt))+  (vars (n text) (a b ca name) (y x rndx))   (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))   (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))   (defstrand ca 2 (subject b) (ca ca) (x y))   (defstrand ca 2 (subject a) (ca ca) (x x))   (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) (mul y x (rec w))) w))+  (deflistener (cat (exp (gen) y) x))   (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))     ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))     ((5 1) (4 0)))   (non-orig (privk a) (privk b) (privk ca))   (uniq-gen y x)   (uniq-orig n)-  (precur (5 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec w))) w))+  (operation nonce-test (added-listener (cat (exp (gen) y) x))     (exp (gen) (mul y x)) (4 0))   (traces     ((send (enc "reg" (exp (gen) x) a (privk a)))@@ -3513,68 +3284,10 @@     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca))))     ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) (mul y x (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec w))) w))))-  (label 94)-  (parent 90)+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 88)+  (parent 84)   (unrealized (0 1) (5 0))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton dhca-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y x x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand ca 2 (subject a) (ca ca) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x-0)-    (y (mul y x (rec x-0))))-  (defstrand ca 2 (subject a-0) (ca ca-0) (x x-0))-  (defstrand ca 2 (subject b-0) (ca ca-0) (x (mul y x (rec x-0))))-  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))-    ((4 0) (5 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (4 1))-    ((6 1) (4 3)))-  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)-    (privk ca-0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation encryption-test (added-strand ca 2)-    (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0)) (4 3))-  (traces-    ((send (enc "reg" (exp (gen) x) a (privk a)))-      (recv (enc (exp (gen) x) a (privk ca)))-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y x)))))-      (send (enc "check" n (exp (gen) (mul y x)))))-    ((send (enc "reg" (exp (gen) y) b (privk b)))-      (recv (enc (exp (gen) y) b (privk ca)))-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (send-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y x)))))-      (recv (enc "check" n (exp (gen) (mul y x)))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((recv (enc "reg" (exp (gen) x) a (privk a)))-      (send (enc (exp (gen) x) a (privk ca))))-    ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))-      (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))-      (send-        (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))-      (recv-        (cat (exp (gen) (mul y x (rec x-0)))-          (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0))-          (enc n (exp (gen) (mul y x)))))-      (send (enc "check" n (exp (gen) (mul y x)))))-    ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))-      (send (enc (exp (gen) x-0) a-0 (privk ca-0))))-    ((recv (enc "reg" (exp (gen) (mul y x (rec x-0))) b-0 (privk b-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0)))))-  (label 95)-  (parent 93)-  (unrealized (0 1) (6 0))   (dead)   (comment "empty cohort")) @@ -3585,16 +3298,15 @@   (defstrand ca 2 (subject b) (ca ca) (x y))   (defstrand ca 2 (subject a) (ca ca) (x x))   (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (gen) (mul y x)))+  (deflistener (cat (exp (gen) x) y))   (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))     ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))     ((5 1) (4 0)))   (non-orig (privk a) (privk b) (privk ca))   (uniq-gen y x)   (uniq-orig n)-  (precur (5 0))-  (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)-    (5 0))+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul y x)) (4 0))   (traces     ((send (enc "reg" (exp (gen) x) a (privk a)))       (recv (enc (exp (gen) x) a (privk ca)))@@ -3615,116 +3327,33 @@     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca))))     ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))-  (label 96)-  (parent 94)-  (unrealized (0 1) (4 0) (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca name) (y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x y-0) (y y))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand ca 2 (subject a) (ca ca) (x y-0))-  (deflistener (exp (gen) (mul y y-0)))-  (deflistener (cat (exp (gen) y-0) y))-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))-    ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen y y-0)-  (uniq-orig n)-  (operation nonce-test (displaced 6 0 resp 1) (exp (gen) y-1) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) y-0) a (privk a)))-      (recv (enc (exp (gen) y-0) a (privk ca)))-      (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (send (enc "check" n (exp (gen) (mul y y-0)))))-    ((send (enc "reg" (exp (gen) y) b (privk b)))-      (recv (enc (exp (gen) y) b (privk ca)))-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))-      (send-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul y y-0)))))-      (recv (enc "check" n (exp (gen) (mul y y-0)))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))-      (send (enc (exp (gen) y-0) a (privk ca))))-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))-    ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))-  (label 97)-  (parent 94)-  (unrealized (0 1) (5 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhca-  (vars (n text) (a b ca name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))-  (defstrand ca 2 (subject b) (ca ca) (x y))-  (defstrand ca 2 (subject a) (ca ca) (x x))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))-    ((5 1) (4 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen x y)-  (uniq-orig n)-  (operation nonce-test (displaced 6 1 resp 1) (exp (gen) y-0) (5 0))-  (traces-    ((send (enc "reg" (exp (gen) x) a (privk a)))-      (recv (enc (exp (gen) x) a (privk ca)))-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (recv-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul x y)))))-      (send (enc "check" n (exp (gen) (mul x y)))))-    ((send (enc "reg" (exp (gen) y) b (privk b)))-      (recv (enc (exp (gen) y) b (privk ca)))-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))-      (send-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))-          (enc n (exp (gen) (mul x y)))))-      (recv (enc "check" n (exp (gen) (mul x y)))))-    ((recv (enc "reg" (exp (gen) y) b (privk b)))-      (send (enc (exp (gen) y) b (privk ca))))-    ((recv (enc "reg" (exp (gen) x) a (privk a)))-      (send (enc (exp (gen) x) a (privk ca))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 98)-  (parent 94)+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 89)+  (parent 84)   (unrealized (0 1) (5 0))   (dead)   (comment "empty cohort"))  (defskeleton dhca-  (vars (n text) (a b ca b-0 name) (y x y-0 rndx))+  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y x x-0 rndx))   (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))   (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))   (defstrand ca 2 (subject b) (ca ca) (x y))   (defstrand ca 2 (subject a) (ca ca) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) y-0) (mul y x (rec y-0))))-  (defstrand resp 1 (b b-0) (y y-0))-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))-    ((5 1) (4 0)) ((6 0) (5 0)))-  (non-orig (privk a) (privk b) (privk ca))-  (precur (5 0))-  (uniq-gen y x y-0)+  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x-0)+    (y (mul y x (rec x-0))))+  (defstrand ca 2 (subject a-0) (ca ca-0) (x x-0))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x (mul y x (rec x-0))))+  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (5 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)))+  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)+    (privk ca-0))+  (uniq-gen y x x-0)   (uniq-orig n)-  (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (5 0))+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0)) (4 3))   (traces     ((send (enc "reg" (exp (gen) x) a (privk a)))       (recv (enc (exp (gen) x) a (privk ca)))@@ -3744,13 +3373,22 @@       (send (enc (exp (gen) y) b (privk ca))))     ((recv (enc "reg" (exp (gen) x) a (privk a)))       (send (enc (exp (gen) x) a (privk ca))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) y-0) (mul y x (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x (rec y-0)))))-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))-  (label 99)-  (parent 94)-  (unrealized (0 1) (4 0) (5 0))+    ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+      (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))+      (send+        (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))+      (recv+        (cat (exp (gen) (mul y x (rec x-0)))+          (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0))+          (enc n (exp (gen) (mul y x)))))+      (send (enc "check" n (exp (gen) (mul y x)))))+    ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))+      (send (enc (exp (gen) x-0) a-0 (privk ca-0))))+    ((recv (enc "reg" (exp (gen) (mul y x (rec x-0))) b-0 (privk b-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0)))))+  (label 90)+  (parent 87)+  (unrealized (0 1) (6 0))   (dead)   (comment "empty cohort")) 
+ tst/dh_group_sig.scm view
@@ -0,0 +1,79 @@+(herald "Signed group DH exchange" (algebra diffie-hellman)+	(limit 100)+	;(limit 20000) (bound 25)+)++(defprotocol dh_sig diffie-hellman+  (defrole group-init+    (vars (alpha rndx) (group text))+    (trace+     (init (cat "Group id" group (exp (gen) alpha))))+    (uniq-gen alpha))+  (defrole init+    (vars (x rndx) (y expt) (g base) (group text) (a b name))+    (trace+     (obsv (cat "Group id" group g))+     (send (enc (exp g x) (privk a)))+     (recv (enc (exp g y) (exp g x) (privk b)))+     (send (enc "final" (exp g y) (exp g x) (privk a))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (x expt) (g base) (group text) (a b name))+    (trace+     (obsv (cat "Group id" group g))+     (recv (enc (exp g x) (privk a)))+     (send (enc (exp g y) (exp g x) (privk b)))+     (recv (enc "final" (exp g y) (exp g x) (privk a))))+    (uniq-gen y))+)++(defskeleton dh_sig+  (vars (a b name))+  (defstrand init 4 (a a) (b b))+  (non-orig (privk b) (privk a))+)++(defskeleton dh_sig+  (vars (a b name))+  (defstrand resp 4 (a a) (b b))+  (non-orig (privk a) (privk b))+)++(defprotocol dh_sig2 diffie-hellman+  (defrole group-init+    (vars (alpha rndx) (group text))+    (trace+     (init (cat "Group id" group (exp (gen) alpha))))+    (uniq-gen alpha))+  (defrole init+    (vars (x rndx) (y expt) (g base) (n group text) (a b name))+    (trace+     (obsv (cat "Group id" group g))+     (send (enc (exp g x) (privk a)))+     (recv (enc (exp g y) (exp g x) (privk b)))+     (send (enc n (exp g (mul x y))))+     (recv n))+    (uniq-gen x n))+  (defrole resp+    (vars (y rndx) (x expt) (g base) (n group text) (a b name))+    (trace+     (obsv (cat "Group id" group g))+     (recv (enc (exp g x) (privk a)))+     (send (enc (exp g y) (exp g x) (privk b)))+     (recv (enc n (exp g (mul x y))))+     (send n))+    (uniq-gen y))+)++(defskeleton dh_sig2+  (vars (a b name))+  (defstrand init 5 (a a) (b b))+  (non-orig (privk b) (privk a))+)++(defskeleton dh_sig2+  (vars (a b name))+  (defstrand resp 5 (a a) (b b))+  (non-orig (privk a) (privk b))+)+
+ tst/dh_group_sig.tst view
@@ -0,0 +1,2821 @@+(herald "Signed group DH exchange" (algebra diffie-hellman) (limit 100))++(comment "CPSA 3.6.8")+(comment "All input read from tst/dh_group_sig.scm")+(comment "Step count limited to 100")++(defprotocol dh_sig diffie-hellman+  (defrole group-init+    (vars (alpha rndx) (group text))+    (trace (init (cat "Group id" group (exp (gen) alpha))))+    (uniq-gen alpha))+  (defrole init+    (vars (x rndx) (y expt) (g base) (group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (send (enc (exp g x) (privk a)))+      (recv (enc (exp g y) (exp g x) (privk b)))+      (send (enc "final" (exp g y) (exp g x) (privk a))))+    (uniq-gen x)+    (absent (x g)))+  (defrole resp+    (vars (y rndx) (x expt) (g base) (group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (recv (enc (exp g x) (privk a)))+      (send (enc (exp g y) (exp g x) (privk b)))+      (recv (enc "final" (exp g y) (exp g x) (privk a))))+    (uniq-gen y)+    (absent (y g) (y (exp g x)))))++(defskeleton dh_sig+  (vars (group text) (a b name) (g base) (x rndx) (y expt))+  (defstrand init 4 (group group) (a a) (b b) (g g) (x x) (y y))+  (absent (x g))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (traces+    ((obsv (cat "Group id" group g)) (send (enc (exp g x) (privk a)))+      (recv (enc (exp g y) (exp g x) (privk b)))+      (send (enc "final" (exp g y) (exp g x) (privk a)))))+  (label 0)+  (unrealized (0 0) (0 2))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group text) (a b name) (x rndx) (y expt) (alpha rndx))+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (precedes ((1 0) (0 0)))+  (leadsto ((1 0) (0 0)))+  (absent (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen x alpha)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group (exp (gen) alpha)) (0 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b)))+      (send+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha)))))+  (label 1)+  (parent 0)+  (unrealized (0 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group group-0 text) (a b a-0 name) (alpha x y rndx) (x-0 expt))+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (x x) (y (mul x y (rec x-0))))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) (mul alpha x (rec x-0)))) (y y) (x x-0))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))+  (leadsto ((1 0) (0 0)))+  (absent (y (exp (gen) (mul alpha x (rec x-0))))+    (y (exp (gen) (mul alpha x))) (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen alpha x y)+  (operation encryption-test (added-strand resp 3)+    (enc (exp (gen) (mul alpha x y (rec x-0))) (exp (gen) (mul alpha x))+      (privk b)) (0 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha x y (rec x-0)))+          (exp (gen) (mul alpha x)) (privk b)))+      (send+        (enc "final" (exp (gen) (mul alpha x y (rec x-0)))+          (exp (gen) (mul alpha x)) (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul alpha x y (rec x-0)))+          (exp (gen) (mul alpha x)) (privk b)))))+  (label 2)+  (parent 1)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig+  (vars (group text) (a b a-0 name) (y x alpha rndx))+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation state-passing-test (displaced 3 1 group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b)))+      (send+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk a)))) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b)))))+  (label 3)+  (parent 2)+  (unrealized)+  (shape)+  (maps+    ((0) ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (group group))))+  (origs))++(defskeleton dh_sig+  (vars (group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (x x) (y (mul y (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha x alpha-0)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b)))+      (send+        (enc "final" (exp (gen) (mul y alpha-0))+          (exp (gen) (mul alpha x)) (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))+  (label 4)+  (parent 2)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((a a) (b b) (x x) (y (mul y (rec alpha) alpha-0))+        (g (exp (gen) alpha)) (group group))))+  (origs))++(comment "Nothing left to do")++(defprotocol dh_sig diffie-hellman+  (defrole group-init+    (vars (alpha rndx) (group text))+    (trace (init (cat "Group id" group (exp (gen) alpha))))+    (uniq-gen alpha))+  (defrole init+    (vars (x rndx) (y expt) (g base) (group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (send (enc (exp g x) (privk a)))+      (recv (enc (exp g y) (exp g x) (privk b)))+      (send (enc "final" (exp g y) (exp g x) (privk a))))+    (uniq-gen x)+    (absent (x g)))+  (defrole resp+    (vars (y rndx) (x expt) (g base) (group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (recv (enc (exp g x) (privk a)))+      (send (enc (exp g y) (exp g x) (privk b)))+      (recv (enc "final" (exp g y) (exp g x) (privk a))))+    (uniq-gen y)+    (absent (y g) (y (exp g x)))))++(defskeleton dh_sig+  (vars (group text) (a b name) (g base) (y rndx) (x expt))+  (defstrand resp 4 (group group) (a a) (b b) (g g) (y y) (x x))+  (absent (y g) (y (exp g x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (traces+    ((obsv (cat "Group id" group g)) (recv (enc (exp g x) (privk a)))+      (send (enc (exp g y) (exp g x) (privk b)))+      (recv (enc "final" (exp g y) (exp g x) (privk a)))))+  (label 5)+  (unrealized (0 0) (0 1) (0 3))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group text) (a b name) (y rndx) (x expt) (alpha rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (precedes ((1 0) (0 0)))+  (leadsto ((1 0) (0 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group (exp (gen) alpha)) (0 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha)))))+  (label 6)+  (parent 5)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group group-0 text) (a b name) (y rndx) (x expt)+    (alpha x-0 rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x (mul x x-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) (mul x alpha)))+    (x x-0))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))+  (leadsto ((1 0) (0 0)))+  (absent (x-0 (exp (gen) (mul x alpha))) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha x-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha x-0)+  (operation encryption-test (added-strand init 2)+    (enc (exp (gen) (mul x alpha x-0)) (privk a)) (0 1))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha x-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha x-0))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul y alpha))+          (exp (gen) (mul x alpha x-0)) (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) (mul x alpha))))+      (send (enc (exp (gen) (mul x alpha x-0)) (privk a)))))+  (label 7)+  (parent 6)+  (unrealized (0 3) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig+  (vars (group text) (a b name) (y x alpha rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation state-passing-test (displaced 3 1 group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk a)))) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))+  (label 8)+  (parent 7)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group group-0 text) (a b name) (y x alpha alpha-0 rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha alpha-0)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul y alpha))+          (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))+  (label 9)+  (parent 7)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group text) (a b b-0 name) (alpha y x rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 4 (group group) (a a) (b b-0) (g (exp (gen) alpha))+    (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha x))))+  (non-orig (privk a) (privk b))+  (uniq-gen alpha y x)+  (operation encryption-test (displaced 2 3 init 4)+    (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x-0))+      (privk a)) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk a)))) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk b-0)))+      (send+        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk a)))))+  (label 10)+  (parent 8)+  (unrealized)+  (shape)+  (maps+    ((0) ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (group group))))+  (origs))++(defskeleton dh_sig+  (vars (group group-0 text) (a b b-0 name) (y alpha alpha-0 x rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x (mul (rec alpha) alpha-0 x)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (group group-0) (a a) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul y alpha (rec alpha-0))))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))+    ((3 1) (0 1)) ((3 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha-0 x))))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha alpha-0 x)+  (operation encryption-test (displaced 2 4 init 4)+    (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha-0))+      (privk a)) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul y alpha))+          (exp (gen) (mul alpha-0 x)) (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))+          (privk b-0)))+      (send+        (enc "final" (exp (gen) (mul y alpha))+          (exp (gen) (mul alpha-0 x)) (privk a)))))+  (label 11)+  (parent 9)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig+  (vars (group group-0 text) (a b b-0 name) (y alpha alpha-0 x rndx))+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))+    (y y) (x (mul (rec alpha) alpha-0 x)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (group group-0) (a a) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul y alpha (rec alpha-0))))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (3 0)) ((3 1) (0 1))+    ((3 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha-0 x))))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha alpha-0 x)+  (operation generalization weakened ((1 0) (3 0)))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))+          (privk b)))+      (recv+        (enc "final" (exp (gen) (mul y alpha))+          (exp (gen) (mul alpha-0 x)) (privk a))))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))+          (privk b-0)))+      (send+        (enc "final" (exp (gen) (mul y alpha))+          (exp (gen) (mul alpha-0 x)) (privk a)))))+  (label 12)+  (parent 11)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((a a) (b b) (y y) (x (mul (rec alpha) alpha-0 x))+        (g (exp (gen) alpha)) (group group))))+  (origs))++(comment "Nothing left to do")++(defprotocol dh_sig2 diffie-hellman+  (defrole group-init+    (vars (alpha rndx) (group text))+    (trace (init (cat "Group id" group (exp (gen) alpha))))+    (uniq-gen alpha))+  (defrole init+    (vars (x rndx) (y expt) (g base) (n group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (send (enc (exp g x) (privk a)))+      (recv (enc (exp g y) (exp g x) (privk b)))+      (send (enc n (exp g (mul x y)))) (recv n))+    (uniq-gen n x)+    (absent (x g)))+  (defrole resp+    (vars (y rndx) (x expt) (g base) (n group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (recv (enc (exp g x) (privk a)))+      (send (enc (exp g y) (exp g x) (privk b)))+      (recv (enc n (exp g (mul y x)))) (send n))+    (uniq-gen y)+    (absent (y g) (y (exp g x)))))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (g base) (x rndx) (y expt))+  (defstrand init 5 (n n) (group group) (a a) (b b) (g g) (x x) (y y))+  (absent (x g))+  (non-orig (privk a) (privk b))+  (uniq-gen n x)+  (traces+    ((obsv (cat "Group id" group g)) (send (enc (exp g x) (privk a)))+      (recv (enc (exp g y) (exp g x) (privk b)))+      (send (enc n (exp g (mul x y)))) (recv n)))+  (label 13)+  (unrealized (0 0) (0 2))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (x rndx) (y expt) (alpha rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (precedes ((1 0) (0 0)))+  (leadsto ((1 0) (0 0)))+  (absent (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n x alpha)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group (exp (gen) alpha)) (0 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (send (enc n (exp (gen) (mul x y alpha))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha)))))+  (label 14)+  (parent 13)+  (unrealized (0 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 name) (alpha x y rndx)+    (x-0 expt))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y (mul x y (rec x-0))))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) (mul alpha x (rec x-0)))) (y y) (x x-0))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))+  (leadsto ((1 0) (0 0)))+  (absent (y (exp (gen) (mul alpha x (rec x-0))))+    (y (exp (gen) (mul alpha x))) (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y)+  (operation encryption-test (added-strand resp 3)+    (enc (exp (gen) (mul alpha x y (rec x-0))) (exp (gen) (mul alpha x))+      (privk b)) (0 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha x y (rec x-0)))+          (exp (gen) (mul alpha x)) (privk b)))+      (send (enc n (exp (gen) (mul alpha x x y (rec x-0))))) (recv n))+    ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul alpha x y (rec x-0)))+          (exp (gen) (mul alpha x)) (privk b)))))+  (label 15)+  (parent 14)+  (unrealized (0 4) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 name) (y x alpha rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha)+  (operation state-passing-test (displaced 3 1 group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b)))))+  (label 16)+  (parent 15)+  (unrealized (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y alpha x alpha-0)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))+  (label 17)+  (parent 15)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a a-0 b name) (alpha x y rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 5 (n n) (group group) (a a-0) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (precedes ((0 1) (2 0)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 0) (2 0))+    ((2 2) (0 2)) ((2 4) (0 4)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y)+  (operation nonce-test (displaced 2 3 resp 5) n (0 4)+    (enc n (exp (gen) (mul y-0 x-0 alpha))))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk b))) (send (enc n (exp (gen) (mul alpha x y))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk b))) (recv (enc n (exp (gen) (mul alpha x y))))+      (send n)))+  (label 18)+  (parent 16)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (n n)+        (group group))))+  (origs))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 name) (y x alpha rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))+    ((2 2) (3 0)) ((3 1) (0 4)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha)+  (operation nonce-test (added-listener (exp (gen) (mul y x alpha))) n+    (0 4) (enc n (exp (gen) (mul y x alpha))))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha)))))+  (label 19)+  (parent 16)+  (unrealized (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))+    ((3 0) (2 0)) ((4 1) (0 4)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y alpha x alpha-0)+  (operation nonce-test (added-listener (exp (gen) (mul y x alpha-0))) n+    (0 4) (enc n (exp (gen) (mul y x alpha-0))))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0)))))+  (label 20)+  (parent 17)+  (unrealized (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 name) (y x alpha rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (deflistener (cat (exp (gen) (mul y x)) alpha))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))+    ((2 2) (4 0)) ((3 1) (0 4)) ((4 1) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x)) alpha))+    (exp (gen) (mul y x alpha)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha))))+    ((recv (cat (exp (gen) (mul y x)) alpha))+      (send (cat (exp (gen) (mul y x)) alpha))))+  (label 21)+  (parent 19)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 name) (y x alpha rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (deflistener (cat (exp (gen) (mul y alpha)) x))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))+    ((2 2) (4 0)) ((3 1) (0 4)) ((4 1) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y alpha)) x))+    (exp (gen) (mul y x alpha)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha))))+    ((recv (cat (exp (gen) (mul y alpha)) x))+      (send (cat (exp (gen) (mul y alpha)) x))))+  (label 22)+  (parent 19)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 name) (y x alpha rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y y))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))+    (y y) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (deflistener (cat (exp (gen) (mul x alpha)) y))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))+    ((2 2) (4 0)) ((3 1) (0 4)) ((4 1) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x alpha)) y))+    (exp (gen) (mul y x alpha)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha))))+    ((recv (cat (exp (gen) (mul x alpha)) y))+      (send (cat (exp (gen) (mul x alpha)) y))))+  (label 23)+  (parent 19)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (deflistener (cat (exp (gen) (mul y x)) alpha-0))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y alpha x alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x)) alpha-0))+    (exp (gen) (mul y x alpha-0)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0))))+    ((recv (cat (exp (gen) (mul y x)) alpha-0))+      (send (cat (exp (gen) (mul y x)) alpha-0))))+  (label 24)+  (parent 20)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (deflistener (cat (exp (gen) (mul y alpha-0)) x))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y alpha x alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y alpha-0)) x))+    (exp (gen) (mul y x alpha-0)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0))))+    ((recv (cat (exp (gen) (mul y alpha-0)) x))+      (send (cat (exp (gen) (mul y alpha-0)) x))))+  (label 25)+  (parent 20)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))+  (defstrand init 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand resp 3 (group group-0) (a a-0) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (deflistener (cat (exp (gen) (mul x alpha-0)) y))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))+    (x (exp (gen) alpha)))+  (non-orig (privk a) (privk b))+  (uniq-gen n y alpha x alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x alpha-0)) y))+    (exp (gen) (mul y x alpha-0)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))+      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))+          (privk b))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0))))+    ((recv (cat (exp (gen) (mul x alpha-0)) y))+      (send (cat (exp (gen) (mul x alpha-0)) y))))+  (label 26)+  (parent 20)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dh_sig2 diffie-hellman+  (defrole group-init+    (vars (alpha rndx) (group text))+    (trace (init (cat "Group id" group (exp (gen) alpha))))+    (uniq-gen alpha))+  (defrole init+    (vars (x rndx) (y expt) (g base) (n group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (send (enc (exp g x) (privk a)))+      (recv (enc (exp g y) (exp g x) (privk b)))+      (send (enc n (exp g (mul x y)))) (recv n))+    (uniq-gen n x)+    (absent (x g)))+  (defrole resp+    (vars (y rndx) (x expt) (g base) (n group text) (a b name))+    (trace (obsv (cat "Group id" group g))+      (recv (enc (exp g x) (privk a)))+      (send (enc (exp g y) (exp g x) (privk b)))+      (recv (enc n (exp g (mul y x)))) (send n))+    (uniq-gen y)+    (absent (y g) (y (exp g x)))))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (g base) (y rndx) (x expt))+  (defstrand resp 5 (n n) (group group) (a a) (b b) (g g) (y y) (x x))+  (absent (y g) (y (exp g x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (traces+    ((obsv (cat "Group id" group g)) (recv (enc (exp g x) (privk a)))+      (send (enc (exp g y) (exp g x) (privk b)))+      (recv (enc n (exp g (mul y x)))) (send n)))+  (label 27)+  (unrealized (0 0) (0 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (y rndx) (x expt) (alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (precedes ((1 0) (0 0)))+  (leadsto ((1 0) (0 0)))+  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group (exp (gen) alpha)) (0 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha)))))+  (label 28)+  (parent 27)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b name) (y rndx) (x expt)+    (alpha x-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x x-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) (mul x alpha)))+    (x x-0))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))+  (leadsto ((1 0) (0 0)))+  (absent (x-0 (exp (gen) (mul x alpha))) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha x-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y alpha x-0)+  (operation encryption-test (added-strand init 2)+    (enc (exp (gen) (mul x alpha x-0)) (privk a)) (0 1))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha x-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha x-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha x-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) (mul x alpha))))+      (send (enc (exp (gen) (mul x alpha x-0)) (privk a)))))+  (label 29)+  (parent 28)+  (unrealized (0 3) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (y x alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation state-passing-test (displaced 3 1 group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))+  (label 30)+  (parent 29)+  (unrealized (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha alpha-0)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))+  (label 31)+  (parent 29)+  (unrealized (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (b a b-0 name) (alpha y x rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 4 (n n) (group group) (a a) (b b-0)+    (g (exp (gen) alpha)) (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha x))))+  (non-orig (privk b) (privk a))+  (uniq-gen n alpha y x)+  (operation encryption-test (displaced 2 3 init 4)+    (enc n (exp (gen) (mul y-0 x-0 alpha))) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk b))) (recv (enc n (exp (gen) (mul alpha y x))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul alpha x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))+          (privk b-0))) (send (enc n (exp (gen) (mul alpha y x))))))+  (label 32)+  (parent 30)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (n n)+        (group group))))+  (origs))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name) (y x alpha rndx)+    (y-0 expt) (x-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) (mul y x alpha (rec y-0)))) (x x-0)+    (y (mul y-0 (rec x-0))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x-0 (exp (gen) (mul y x alpha (rec y-0))))+    (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha x-0)+  (operation encryption-test (added-strand init 4)+    (enc n (exp (gen) (mul y x alpha))) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a))))+    ((obsv+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec y-0)))))+      (send (enc (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul y x alpha (rec x-0)))+          (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x alpha))))))+  (label 33)+  (parent 30)+  (unrealized (3 0) (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (y x alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (0 3)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation encryption-test+    (added-listener (exp (gen) (mul y x alpha)))+    (enc n (exp (gen) (mul y x alpha))) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha)))))+  (label 34)+  (parent 30)+  (unrealized (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (b a b-0 name) (alpha alpha-0 y x rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) alpha-0 x)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y y))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))+    ((3 1) (0 1)) ((3 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha-0 x))))+  (non-orig (privk b) (privk a))+  (uniq-gen n alpha alpha-0 y x)+  (operation encryption-test (displaced 2 4 init 4)+    (enc n (exp (gen) (mul y-0 x-0 alpha-0))) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x))))))+  (label 35)+  (parent 31)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)+    (y x alpha alpha-0 rndx) (y-0 expt) (x-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)+    (g (exp (gen) (mul y x alpha-0 (rec y-0)))) (x x-0)+    (y (mul y-0 (rec x-0))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x-0 (exp (gen) (mul y x alpha-0 (rec y-0))))+    (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n y x alpha alpha-0 x-0)+  (operation encryption-test (added-strand init 4)+    (enc n (exp (gen) (mul y x alpha-0))) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec y-0)))))+      (send+        (enc (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))+          (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x alpha-0))))))+  (label 36)+  (parent 31)+  (unrealized (4 0) (4 2))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (0 3)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha alpha-0)+  (operation encryption-test+    (added-listener (exp (gen) (mul y x alpha-0)))+    (enc n (exp (gen) (mul y x alpha-0))) (0 3))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0)))))+  (label 37)+  (parent 31)+  (unrealized (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))+    ((2 1) (0 1)) ((3 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))+  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha)+  (operation state-passing-test (displaced 4 1 group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha))))))+  (label 38)+  (parent 33)+  (unrealized (3 2))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 3) (0 3)) ((4 0) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group-0 (exp (gen) alpha-0)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))+  (label 39)+  (parent 33)+  (unrealized (3 2))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (y x alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (deflistener (cat (exp (gen) (mul y x)) alpha))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (0 3)) ((4 1) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x)) alpha))+    (exp (gen) (mul y x alpha)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha))))+    ((recv (cat (exp (gen) (mul y x)) alpha))+      (send (cat (exp (gen) (mul y x)) alpha))))+  (label 40)+  (parent 34)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (y x alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (deflistener (cat (exp (gen) (mul y alpha)) x))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (0 3)) ((4 1) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y alpha)) x))+    (exp (gen) (mul y x alpha)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha))))+    ((recv (cat (exp (gen) (mul y alpha)) x))+      (send (cat (exp (gen) (mul y alpha)) x))))+  (label 41)+  (parent 34)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b name) (y x alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))+  (deflistener (exp (gen) (mul y x alpha)))+  (deflistener (cat (exp (gen) (mul x alpha)) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (0 3)) ((4 1) (3 0)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))+  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x alpha)) y))+    (exp (gen) (mul y x alpha)) (3 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a))))+    ((recv (exp (gen) (mul y x alpha)))+      (send (exp (gen) (mul y x alpha))))+    ((recv (cat (exp (gen) (mul x alpha)) y))+      (send (cat (exp (gen) (mul x alpha)) y))))+  (label 42)+  (parent 34)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (b a b-0 name) (alpha alpha-0 y x rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) alpha-0 x)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y y))+  (deflistener (cat (exp (gen) alpha-0) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))+    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha-0 x))))+  (non-orig (privk b) (privk a))+  (uniq-gen n alpha alpha-0 y x)+  (operation nonce-test (added-listener (cat (exp (gen) alpha-0) y))+    (exp (gen) (mul alpha-0 y)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))+    ((recv (cat (exp (gen) alpha-0) y))+      (send (cat (exp (gen) alpha-0) y))))+  (label 43)+  (parent 35)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (b a b-0 name) (alpha alpha-0 y x rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) alpha-0 x)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y y))+  (deflistener (cat (exp (gen) y) alpha-0))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))+    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul alpha-0 x))))+  (non-orig (privk b) (privk a))+  (uniq-gen n alpha alpha-0 y x)+  (operation nonce-test (added-listener (cat (exp (gen) y) alpha-0))+    (exp (gen) (mul alpha-0 y)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))+      (recv+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))+    ((recv (cat (exp (gen) y) alpha-0))+      (send (cat (exp (gen) y) alpha-0))))+  (label 44)+  (parent 35)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group) (alpha alpha-0))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((2 1) (0 1)) ((3 0) (2 0)) ((4 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation state-passing-test (displaced 5 1 group-init 1)+    (cat "Group id" group-1 (exp (gen) alpha-1)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha))))))+  (label 45)+  (parent 36)+  (unrealized (4 2))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 3) (0 3)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0)+  (operation state-passing-test (displaced 5 3 group-init 1)+    (cat "Group id" group-1 (exp (gen) alpha-1)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0))))))+  (label 46)+  (parent 36)+  (unrealized (4 2))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 alpha-1 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)+    (g (exp (gen) alpha-1)) (x x)+    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))+  (defstrand group-init 1 (group group-1) (alpha alpha-1))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 3) (0 3)) ((5 0) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))+  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)+  (operation state-passing-test (added-strand group-init 1)+    (cat "Group id" group-1 (exp (gen) alpha-1)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))+      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-1)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((init (cat "Group id" group-1 (exp (gen) alpha-1)))))+  (label 47)+  (parent 36)+  (unrealized (4 2))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (deflistener (cat (exp (gen) (mul y x)) alpha-0))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x)) alpha-0))+    (exp (gen) (mul y x alpha-0)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0))))+    ((recv (cat (exp (gen) (mul y x)) alpha-0))+      (send (cat (exp (gen) (mul y x)) alpha-0))))+  (label 48)+  (parent 37)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (deflistener (cat (exp (gen) (mul y alpha-0)) x))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y alpha-0)) x))+    (exp (gen) (mul y x alpha-0)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0))))+    ((recv (cat (exp (gen) (mul y alpha-0)) x))+      (send (cat (exp (gen) (mul y alpha-0)) x))))+  (label 49)+  (parent 37)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (exp (gen) (mul y x alpha-0)))+  (deflistener (cat (exp (gen) (mul x alpha-0)) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))+    (y (exp (gen) (mul x alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen y x alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x alpha-0)) y))+    (exp (gen) (mul y x alpha-0)) (4 0))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (exp (gen) (mul y x alpha-0)))+      (send (exp (gen) (mul y x alpha-0))))+    ((recv (cat (exp (gen) (mul x alpha-0)) y))+      (send (cat (exp (gen) (mul x alpha-0)) y))))+  (label 50)+  (parent 37)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))+    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))+  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha))+      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha))))+  (label 51)+  (parent 38)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul (rec x) y alpha)) x-0))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))+    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))+  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y alpha)) x-0))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul (rec x) y alpha)) x-0))+      (send (cat (exp (gen) (mul (rec x) y alpha)) x-0))))+  (label 52)+  (parent 38)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))+    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))+  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+      (send (cat (exp (gen) (mul (rec x) x-0 alpha)) y))))+  (label 53)+  (parent 38)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul y x-0 alpha)) x))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))+    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))+  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x-0 alpha)) x))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul y x-0 alpha)) x))+      (send (cat (exp (gen) (mul y x-0 alpha)) x))))+  (label 54)+  (parent 38)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha))+      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha))))+  (label 55)+  (parent 39)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (cat (exp (gen) (mul (rec x) y alpha)) x-0))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y alpha)) x-0))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (cat (exp (gen) (mul (rec x) y alpha)) x-0))+      (send (cat (exp (gen) (mul (rec x) y alpha)) x-0))))+  (label 56)+  (parent 39)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+      (send (cat (exp (gen) (mul (rec x) x-0 alpha)) y))))+  (label 57)+  (parent 39)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x x-0))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (deflistener (cat (exp (gen) (mul y x-0 alpha)) x))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x-0 alpha)) x))+    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((recv (cat (exp (gen) (mul y x-0 alpha)) x))+      (send (cat (exp (gen) (mul y x-0 alpha)) x))))+  (label 58)+  (parent 39)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group) (alpha alpha-0))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha))+    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha))+      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha))))+  (label 59)+  (parent 45)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group) (alpha alpha-0))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (deflistener (cat (exp (gen) (mul (rec x) y alpha)) x-0))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y alpha)) x-0))+    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul (rec x) y alpha)) x-0))+      (send (cat (exp (gen) (mul (rec x) y alpha)) x-0))))+  (label 60)+  (parent 45)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group) (alpha alpha-0))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha)) y))+      (send (cat (exp (gen) (mul (rec x) x-0 alpha)) y))))+  (label 61)+  (parent 45)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (x y x-0 alpha alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))+  (defstrand group-init 1 (group group) (alpha alpha-0))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha))+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x)+    (y (mul (rec x) y x-0 alpha (rec alpha-0))))+  (deflistener (cat (exp (gen) (mul y x-0 alpha)) x))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))+    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))+  (non-orig (privk a) (privk b))+  (uniq-gen n x y x-0 alpha alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x-0 alpha)) x))+    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))+      (send+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha))))+    ((obsv (cat "Group id" group (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha)))))+    ((recv (cat (exp (gen) (mul y x-0 alpha)) x))+      (send (cat (exp (gen) (mul y x-0 alpha)) x))))+  (label 62)+  (parent 45)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))+      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))))+  (label 63)+  (parent 46)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((recv (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))+      (send (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))))+  (label 64)+  (parent 46)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))+      (send (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))))+  (label 65)+  (parent 46)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)+    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))+  (deflistener (cat (exp (gen) (mul y x-0 alpha-0)) x))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))+    ((5 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))+  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x-0 alpha-0)) x))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-0)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((recv (cat (exp (gen) (mul y x-0 alpha-0)) x))+      (send (cat (exp (gen) (mul y x-0 alpha-0)) x))))+  (label 66)+  (parent 46)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 alpha-1 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)+    (g (exp (gen) alpha-1)) (x x)+    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))+  (defstrand group-init 1 (group group-1) (alpha alpha-1))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))+    ((6 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))+  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))+      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-1)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))+      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))))+  (label 67)+  (parent 47)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 alpha-1 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)+    (g (exp (gen) alpha-1)) (x x)+    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))+  (defstrand group-init 1 (group group-1) (alpha alpha-1))+  (deflistener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))+    ((6 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))+  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))+      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-1)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))+    ((recv (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))+      (send (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))))+  (label 68)+  (parent 47)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 alpha-1 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)+    (g (exp (gen) alpha-1)) (x x)+    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))+  (defstrand group-init 1 (group group-1) (alpha alpha-1))+  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))+    ((6 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))+  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))+      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-1)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))+    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))+      (send (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))))+  (label 69)+  (parent 47)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dh_sig2+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)+    (alpha x y x-0 alpha-0 alpha-1 rndx))+  (defstrand resp 5 (n n) (group group) (a a) (b b)+    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))+  (defstrand group-init 1 (group group) (alpha alpha))+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))+    (x x-0))+  (defstrand group-init 1 (group group-0) (alpha alpha-0))+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)+    (g (exp (gen) alpha-1)) (x x)+    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))+  (defstrand group-init 1 (group group-1) (alpha alpha-1))+  (deflistener (cat (exp (gen) (mul y x-0 alpha-0)) x))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))+    ((6 1) (4 2)))+  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))+  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))+    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))+  (non-orig (privk a) (privk b))+  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y x-0 alpha-0)) x))+    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))+  (traces+    ((obsv (cat "Group id" group (exp (gen) alpha)))+      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))+      (send+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))+          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))+      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))+    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))+    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))+    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))+      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))+      (recv+        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))+          (exp (gen) (mul x alpha-1)) (privk b-0)))+      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))+    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))+    ((recv (cat (exp (gen) (mul y x-0 alpha-0)) x))+      (send (cat (exp (gen) (mul y x-0 alpha-0)) x))))+  (label 70)+  (parent 47)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/dh_mim.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack"   (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/dh_mim.scm")  (defprotocol dh_mim diffie-hellman
tst/dh_mim2.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack"   (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/dh_mim2.scm")  (defprotocol dh_mim diffie-hellman
+ tst/dh_mim_nobase.scm view
@@ -0,0 +1,87 @@+(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)+; (limit 1)+)++(defprotocol dh_mim_nobase diffie-hellman+  (defrole init+    (vars (x rndx) (h expt) (n text))+    (trace (send (exp (gen) x))+	   (recv (exp (gen) h))+	   (send (enc n (exp (exp (gen) h) x))))+;    (uniq-orig n)+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (h expt) (n text))+    (trace (recv (exp (gen) h))+	   (send (exp (gen) y))+	   (recv (enc n (exp (exp (gen) h) y))))+    (uniq-gen y))+  (comment "Diffie-hellman key exchange followed by an encryption"))++(comment+(defskeleton dh_mim+  (vars (n text) (hx base) (y x rndx))+  (defstrand init 3 (n n) (h (exp hx (mul (rec y) x))) (x y))+  (defstrand resp 3 (n n) (h hx) (y x))+  (precedes ((0 2) (1 2)) ((1 1) (0 1)))+  (pen-non-orig y x)+  (uniq-gen y x)+  (uniq-orig n)+  (operation encryption-test (displaced 2 0 init 3)+    (enc n (exp hx (mul y-0 x-0))) (1 2))+  (traces+    ((send (exp (gen) y)) (recv (exp hx (mul (rec y) x)))+      (send (enc n (exp hx x))))+    ((recv hx) (send (exp (gen) x)) (recv (enc n (exp hx x)))))+  (label 1)+  (parent 0)+  (unrealized (0 1))+  (origs (n (0 2)))+  (comment "empty cohort"))+)++;(comment+(defskeleton dh_mim_nobase+  (vars (n text) (hx hy expt) (x y rndx))+  (defstrand init 3 (n n) (h hy) (x x))+  (defstrand resp 3 (n n) (h hx) (y y))+  (precedes ((0 2) (1 2)))+  (uniq-orig n)+  (pen-non-orig x y)+  (comment "Agreement on the encrypted text only"))+;)++(comment+(defskeleton dh_mim+  (vars (n text) (x z y rndx))+  (defstrand init 3 (n n) (h (exp (gen) (mul x z y))) (x y))+  (defstrand resp 3 (n n) (h (exp (gen) (mul z y y))) (y x))+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+  (pen-non-orig x y)+  (uniq-gen x y)+  (uniq-orig n))+)++(comment+(defskeleton dh_mim+  (vars (n text) (x y y-0 rndx))+  (defstrand init 3 (n n) (h (exp (gen) (mul y y-0))) (x y-0))+  (defstrand resp 3 (n n) (h (exp (gen) (mul (rec x) y y-0 y-0))) (y x))+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))+  (pen-non-orig x y-0)+  (uniq-gen x y-0)+  (uniq-orig n)+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) (mul y x-0))+    (0 1))+  (traces+    ((send (exp (gen) y-0)) (recv (exp (gen) (mul y y-0)))+      (send (enc n (exp (gen) (mul y y-0 y-0)))))+    ((recv (exp (gen) (mul (rec x) y y-0 y-0))) (send (exp (gen) x))+      (recv (enc n (exp (gen) (mul y y-0 y-0))))))+  (label 3)+  (parent 1)+  (seen 3)+  (unrealized (1 0))+  (origs (n (0 2)))+  (comment "3 in cohort - 2 not yet seen"))+)
+ tst/dh_mim_nobase.tst view
@@ -0,0 +1,42 @@+(herald "Diffie-Hellman protocol, man-in-the-middle attack"+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/dh_mim_nobase.scm")++(defprotocol dh_mim_nobase diffie-hellman+  (defrole init+    (vars (x rndx) (h expt) (n text))+    (trace (send (exp (gen) x)) (recv (exp (gen) h))+      (send (enc n (exp (gen) (mul x h)))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (h expt) (n text))+    (trace (recv (exp (gen) h)) (send (exp (gen) y))+      (recv (enc n (exp (gen) (mul y h)))))+    (uniq-gen y)+    (absent (y (exp (gen) h))))+  (comment "Diffie-hellman key exchange followed by an encryption"))++(defskeleton dh_mim_nobase+  (vars (n text) (hx hy expt) (x y rndx))+  (defstrand init 3 (n n) (x x) (h hy))+  (defstrand resp 3 (n n) (y y) (h hx))+  (precedes ((0 2) (1 2)))+  (absent (y (exp (gen) hx)))+  (pen-non-orig x y)+  (uniq-gen x y)+  (uniq-orig n)+  (comment "Agreement on the encrypted text only")+  (traces+    ((send (exp (gen) x)) (recv (exp (gen) hy))+      (send (enc n (exp (gen) (mul hy x)))))+    ((recv (exp (gen) hx)) (send (exp (gen) y))+      (recv (enc n (exp (gen) (mul hx y))))))+  (label 0)+  (unrealized)+  (shape)+  (maps ((0 1) ((n n) (hx hx) (hy hy) (x x) (y y))))+  (origs (n (0 2))))++(comment "Nothing left to do")
tst/dh_sig.tst view
@@ -1,6 +1,6 @@ (herald "Signed DH exchange" (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/dh_sig.scm")  (defprotocol dh_sig diffie-hellman
tst/dh_test.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman protocol, man-in-the-middle attack"   (algebra diffie-hellman) (bound 20)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/dh_test.scm") (comment "Strand count bounded at 20") 
+ tst/dhcr_um.scm view
@@ -0,0 +1,126 @@+; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  We use+; function relation declarations to link names to long-term public+; values.++;;; This file contains the standard version, in which the two+;;; ephemeral are mixed, as are the two static exponents.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "DHCR: unified model (UM) original" (bound 20) (limit 8000) (algebra diffie-hellman))++(defmacro (kcfa ltxa ltxb x hy)+  (hash (exp (gen) (mul ltxa ltxb)) (exp hy x)))++(defmacro (kcfb ltxa ltxb y hx)+  (hash (exp (gen) (mul ltxa ltxb)) (exp hx y)))++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace+     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+     (send (cat na a b (exp (gen) x)))+     (recv (cat (exp (gen) y) (enc na nb a b (kcfa ltxa ltxb x (exp (gen) y)))))+     (send nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+           ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen x)+    (uniq-orig na)+    (neq ((exp (gen) y) (gen))))++  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace+     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+     (recv (cat na a b (exp (gen) x)))+     (send (cat (exp (gen) y) (enc na nb a b (kcfb ltxa ltxb y (exp (gen) x)))))+     (recv nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+	   ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen y)+    (uniq-orig nb)+    (neq ((exp (gen) x) (gen))))++  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self (exp (gen) l)))+     (recv "end-of-protocol")+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))))++; Initiator point of view: both LTX exponents secret+(defskeleton dhcr-um+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb) (neq (a b)))++; Initiator point of view: partner's exponent secret+(defskeleton dhcr-um+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxb)+  (neq (a b)))++; Responder point of view; both exponents secret+(defskeleton dhcr-um+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb)+  (neq (a b)))++; Responder point of view; partner's exponent secre+(defskeleton dhcr-um+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton dhcr-um+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (kcfa ltxa ltxb x (exp (gen) y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton dhcr-um+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))
+ tst/dhcr_um.tst view
@@ -0,0 +1,9880 @@+(herald "DHCR: unified model (UM) original" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/dhcr_um.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat self (exp (gen) ltxa))))+    ((send (cat self-0 (exp (gen) ltxb)))))+  (label 0)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb)))))+  (label 1)+  (parent 0)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0))))))))+  (label 2)+  (parent 1)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+  (label 3)+  (parent 1)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 4 3 resp 3) (exp (gen) y-0) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x y))))))))+  (label 4)+  (parent 2)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (nb (3 2)) (na (0 1))))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (4 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+    (exp (gen) (mul (rec x) y x-0)) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+  (label 5)+  (parent 2)+  (unrealized (4 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+  (label 6)+  (parent 3)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (4 0))+  (operation nonce-test+    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)+      (w (mul w y))) (gen) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 7)+  (parent 5)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 5 0 init 2) (exp (gen) x-0) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 8)+  (parent 5)+  (unrealized (0 2) (3 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)) ((5 1) (3 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 9)+  (parent 5)+  (unrealized (0 2) (3 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 5 3 resp 3) (exp (gen) y-0) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 10)+  (parent 5)+  (seen 2)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)) ((5 2) (3 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 11)+  (parent 5)+  (unrealized (0 2) (3 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (defstrand ltx-gen 1 (self a) (l l))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (non-orig ltxb l)+  (precur (4 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 5 1 ltx-gen 1) (exp (gen) l-0) (4 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb)) ((send (cat a (exp (gen) l))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 12)+  (parent 5)+  (unrealized (0 2) (3 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (non-orig ltxa l)+  (precur (4 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-0) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) l))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 13)+  (parent 5)+  (unrealized (0 2) (3 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)) ((5 0) (3 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 14)+  (parent 5)+  (unrealized (0 2) (3 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (4 0))+  (operation nonce-test (added-listener y) (mul w y) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 15)+  (parent 7)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 16)+  (parent 8)+  (unrealized (3 1) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (6 0)) ((4 1) (0 2)) ((5 1) (3 1))+    ((6 1) (4 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 17)+  (parent 9)+  (unrealized (3 1) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (6 0)) ((4 1) (0 2)) ((5 2) (3 1))+    ((6 1) (4 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 18)+  (parent 11)+  (unrealized (3 1) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (defstrand ltx-gen 1 (self a) (l l))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (non-orig ltxb l)+  (precur (4 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (4 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb)) ((send (cat a (exp (gen) l))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 19)+  (parent 12)+  (unrealized (3 1) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (non-orig ltxa l)+  (precur (4 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) l))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 20)+  (parent 13)+  (unrealized (3 1) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (6 0)) ((4 1) (0 2)) ((5 0) (3 1))+    ((6 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (non-orig ltxa ltxb)+  (precur (4 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 21)+  (parent 14)+  (unrealized (3 1) (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxb))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat self (exp (gen) ltxb)))))+  (label 22)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb)) ((send (cat b (exp (gen) ltxb)))))+  (label 23)+  (parent 22)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (na (0 1))))++(comment "Nothing left to do")++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb)) ((send (cat self (exp (gen) ltxa))))+    ((send (cat self-0 (exp (gen) ltxb)))))+  (label 24)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb)))))+  (label 25)+  (parent 24)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt) (y-0 rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x y)))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul y y-0)))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))+    (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x y))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul y y-0)) (gen)) (a b)+    ((exp (gen) (mul x y)) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x y-0)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y y-0)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x y y-0)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x y y-0)))))) (send nb)))+  (label 26)+  (parent 25)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y-0) (x (mul x y)) (na na)+        (nb nb))))+  (origs (na (3 1)) (nb (0 2))))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+  (label 27)+  (parent 25)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+  (label 28)+  (parent 27)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))+  (label 29)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa)))))+  (label 30)+  (parent 29)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (nb (0 2))))++(comment "Nothing left to do")++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 31)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 32)+  (parent 31)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))) (1 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+  (label 33)+  (parent 32)+  (unrealized (0 2) (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))+    ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) ltxb))+    (exp (gen) (mul ltxa ltxb)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb))))+  (label 34)+  (parent 33)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))+    ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) ltxa))+    (exp (gen) (mul ltxa ltxb)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa))))+  (label 35)+  (parent 33)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l))))+  (label 36)+  (parent 34)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (5 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 6 2 ltx-gen 3) l (5 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l))))+  (label 37)+  (parent 35)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0))))))))+  (label 38)+  (parent 36)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+  (label 39)+  (parent 36)+  (unrealized (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0))))))))+  (label 40)+  (parent 37)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)))+  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+  (label 41)+  (parent 37)+  (unrealized (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 7 6 resp 3) (exp (gen) y-0) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x y))))))))+  (label 42)+  (parent 38)+  (unrealized (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (7 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+    (exp (gen) (mul (rec x) y x-0)) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+  (label 43)+  (parent 38)+  (unrealized (7 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+  (label 44)+  (parent 39)+  (unrealized (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 7 6 resp 3) (exp (gen) y-0) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x y))))))))+  (label 45)+  (parent 40)+  (unrealized (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (7 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+    (exp (gen) (mul (rec x) y x-0)) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+  (label 46)+  (parent 40)+  (unrealized (7 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)))+  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))) (6 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+  (label 47)+  (parent 41)+  (unrealized (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 48)+  (parent 42)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 49)+  (parent 42)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (7 0))+  (operation nonce-test+    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)+      (w (mul w y))) (gen) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 50)+  (parent 43)+  (unrealized (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 0 init 2) (exp (gen) x-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 51)+  (parent 43)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))+    ((8 1) (6 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 52)+  (parent 43)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 6 resp 3) (exp (gen) y-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 53)+  (parent 43)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))+    ((8 2) (6 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 54)+  (parent 43)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) l) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 2 ltx-gen 1) (exp (gen) l-0) (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 55)+  (parent 43)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 3 ltx-gen 1) (exp (gen) l-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 56)+  (parent 43)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))+    ((8 0) (6 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 57)+  (parent 43)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((3 0) (0 0)) ((3 0) (8 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))+    ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) l))+    (exp (gen) (mul ltxa l)) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l))))+  (label 58)+  (parent 44)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) l) ltxa))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((3 0) (0 0)) ((3 0) (8 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))+    ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) l) ltxa))+    (exp (gen) (mul ltxa l)) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa))))+  (label 59)+  (parent 44)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 60)+  (parent 45)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 61)+  (parent 45)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (7 0))+  (operation nonce-test+    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)+      (w (mul w y))) (gen) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 62)+  (parent 46)+  (unrealized (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 0 init 2) (exp (gen) x-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 63)+  (parent 46)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))+    ((8 1) (6 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 64)+  (parent 46)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 6 resp 3) (exp (gen) y-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 65)+  (parent 46)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))+    ((8 2) (6 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 66)+  (parent 46)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 2 ltx-gen 1) (exp (gen) l-0) (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 67)+  (parent 46)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) l) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 3 ltx-gen 1) (exp (gen) l-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 68)+  (parent 46)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))+    ((8 0) (6 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 69)+  (parent 46)+  (unrealized (0 2) (4 0) (6 1) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))+    ((8 1) (7 0)))+  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) l))+    (exp (gen) (mul ltxb l)) (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l))))+  (label 70)+  (parent 47)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) l) ltxb))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))+    ((8 1) (7 0)))+  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) l) ltxb))+    (exp (gen) (mul ltxb l)) (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb))))+  (label 71)+  (parent 47)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (7 0))+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 72)+  (parent 50)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 73)+  (parent 51)+  (unrealized (4 0) (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))+    ((8 1) (6 1)) ((9 1) (7 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 74)+  (parent 52)+  (unrealized (4 0) (6 1) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx)+    (w-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) (mul x w y (rec w-0))) w-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x w y (rec w-0))) w-0))+    (exp (gen) (mul x w y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) (mul x w y (rec w-0))) w-0))+      (send (cat (exp (gen) (mul x w y (rec w-0))) w-0))))+  (label 75)+  (parent 53)+  (unrealized (8 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))+    ((8 2) (6 1)) ((9 1) (7 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 76)+  (parent 54)+  (unrealized (4 0) (6 1) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) l) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 77)+  (parent 55)+  (unrealized (4 0) (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 78)+  (parent 56)+  (unrealized (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))+    ((8 0) (6 1)) ((9 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 79)+  (parent 57)+  (unrealized (4 0) (6 1) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (7 0))+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 80)+  (parent 62)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 81)+  (parent 63)+  (unrealized (4 0) (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))+    ((8 1) (6 1)) ((9 1) (7 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 82)+  (parent 64)+  (unrealized (4 0) (6 1) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx)+    (w-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) (mul x w y (rec w-0))) w-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x w y (rec w-0))) w-0))+    (exp (gen) (mul x w y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) (mul x w y (rec w-0))) w-0))+      (send (cat (exp (gen) (mul x w y (rec w-0))) w-0))))+  (label 83)+  (parent 65)+  (unrealized (8 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))+    ((8 2) (6 1)) ((9 1) (7 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb))+          (exp (gen) (mul x-0 w y y-0)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 84)+  (parent 66)+  (unrealized (4 0) (6 1) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 85)+  (parent 67)+  (unrealized (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) l) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))+    ((8 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 86)+  (parent 68)+  (unrealized (4 0) (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))+    ((8 0) (6 1)) ((9 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 87)+  (parent 69)+  (unrealized (4 0) (6 1) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test+    (contracted (x-0 x) (w-0 (mul (rec x) w)) (y-0 y) (w-1 (mul w y))+      (y-1 y) (w (mul w y))) (gen) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 88)+  (parent 75)+  (unrealized (0 2) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 0 init 2) (exp (gen) x-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 89)+  (parent 75)+  (unrealized (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x-0)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))+      (send (cat (exp (gen) y) (mul (rec x) w x-0))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 90)+  (parent 75)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen x ltxa ltxb y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 6 resp 3) (exp (gen) y-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 91)+  (parent 75)+  (unrealized (0 2) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul (rec x-0) w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul w y)))+  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)+    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul (rec x-0) w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))))+    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))+      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 92)+  (parent 75)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) l) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 2 ltx-gen 1) (exp (gen) l-0) (8 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 93)+  (parent 75)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 3 ltx-gen 1) (exp (gen) l-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 94)+  (parent 75)+  (unrealized (0 2) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 95)+  (parent 75)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test+    (contracted (x-0 x) (w-0 (mul (rec x) w)) (y-0 y) (w-1 (mul w y))+      (y-1 y) (w (mul w y))) (gen) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 96)+  (parent 83)+  (unrealized (0 2) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 0 init 2) (exp (gen) x-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 97)+  (parent 83)+  (unrealized (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x-0)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))+      (send (cat (exp (gen) y) (mul (rec x) w x-0))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 98)+  (parent 83)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen x ltxa ltxb y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 6 resp 3) (exp (gen) y-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 99)+  (parent 83)+  (unrealized (0 2) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul (rec x-0) w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul w y)))+  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)+    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul (rec x-0) w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))))+    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))+      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 100)+  (parent 83)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 2 ltx-gen 1) (exp (gen) l-0) (8 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 101)+  (parent 83)+  (unrealized (0 2) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) l) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 9 3 ltx-gen 1) (exp (gen) l-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 102)+  (parent 83)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 103)+  (parent 83)+  (unrealized (0 2) (4 0) (7 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 104)+  (parent 88)+  (unrealized (0 2) (7 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 105)+  (parent 89)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x-0)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)) ((10 1) (8 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))+      (send (cat (exp (gen) y) (mul (rec x) w x-0))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 106)+  (parent 90)+  (unrealized (0 2) (7 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) (one)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (contracted (x-0 x) (w x)) (one) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 107)+  (parent 91)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb y x l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul y l)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x l)))+  (deflistener (cat (exp (gen) y) l))+  (deflistener (cat (exp (gen) y) (mul x l)))+  (defstrand ltx-gen 3 (self self) (l l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((9 2) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x l)) (gen)) (a b)+    ((exp (gen) (mul y l)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x l)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 3) l (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul y l))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x l)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x l)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))+    ((recv (cat (exp (gen) y) (mul x l)))+      (send (cat (exp (gen) y) (mul x l))))+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l)))+  (label 108)+  (parent 91)+  (unrealized (4 0) (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) y) (mul w x)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (added-absence x w) w (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) y) (mul w x)))+      (send (cat (exp (gen) y) (mul w x)))))+  (label 109)+  (parent 91)+  (unrealized (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener x)+  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))+    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen x ltxa ltxb y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener x) (mul (rec x) w) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv x) (send x)))+  (label 110)+  (parent 91)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul (rec x-0) w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul w y)))+  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)) ((10 1) (8 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)+    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul (rec x-0) w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))))+    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))+      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 111)+  (parent 92)+  (unrealized (0 2) (7 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) l) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 112)+  (parent 93)+  (unrealized (0 2) (7 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxa) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 113)+  (parent 94)+  (unrealized (0 2) (7 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((10 1) (8 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 114)+  (parent 95)+  (unrealized (0 2) (7 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 115)+  (parent 96)+  (unrealized (0 2) (7 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 116)+  (parent 97)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w x-0 y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x-0)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)) ((10 1) (8 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))+      (send (cat (exp (gen) y) (mul (rec x) w x-0))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 117)+  (parent 98)+  (unrealized (0 2) (7 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) (one)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (contracted (x-0 x) (w x)) (one) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 118)+  (parent 99)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb y x l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul y l)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x l)))+  (deflistener (cat (exp (gen) y) l))+  (deflistener (cat (exp (gen) y) (mul x l)))+  (defstrand ltx-gen 3 (self self) (l l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((9 2) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x l)) (gen)) (a b)+    ((exp (gen) (mul y l)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x l)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 3) l (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul y l))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x l)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x l)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))+    ((recv (cat (exp (gen) y) (mul x l)))+      (send (cat (exp (gen) y) (mul x l))))+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l)))+  (label 119)+  (parent 99)+  (unrealized (4 0) (6 1) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) y) (mul w x)))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))+    ((7 1) (0 2)) ((8 1) (4 0)))+  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (added-absence x w) w (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) y) (mul w x)))+      (send (cat (exp (gen) y) (mul w x)))))+  (label 120)+  (parent 99)+  (unrealized (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener x)+  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0))+    ((3 0) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))+    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (7 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen x ltxa ltxb y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener x) (mul (rec x) w) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv x) (send x)))+  (label 121)+  (parent 99)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul (rec x-0) w y y-0)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul w y)))+  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)) ((10 1) (8 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)+    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul (rec x-0) w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))+      (send+        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))))+    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))+      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 122)+  (parent 100)+  (unrealized (0 2) (7 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxb) l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 123)+  (parent 101)+  (unrealized (0 2) (7 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) l) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 124)+  (parent 102)+  (unrealized (0 2) (7 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))+    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((10 1) (8 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 125)+  (parent 103)+  (unrealized (0 2) (7 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) y) (mul w x)))+  (deflistener x)+  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))+    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (added-listener x) (mul w x) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) y) (mul w x)))+      (send (cat (exp (gen) y) (mul w x)))) ((recv x) (send x)))+  (label 126)+  (parent 109)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) y) (mul w x)))+  (deflistener x)+  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0))+    ((3 0) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))+    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (8 0) (7 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (added-listener x) (mul w x) (8 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))) (send nb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) y) (mul w x)))+      (send (cat (exp (gen) y) (mul w x)))) ((recv x) (send x)))+  (label 127)+  (parent 120)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 128)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 129)+  (parent 128)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (deflistener (exp (gen) (mul y x-0)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))+    ((4 2) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0))))))))+  (label 130)+  (parent 129)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((3 0) (0 0)) ((4 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+  (label 131)+  (parent 129)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))+    ((4 2) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 5 4 resp 3) (exp (gen) y-0) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x y))))))))+  (label 132)+  (parent 130)+  (unrealized (1 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) y x-0)))+  (deflistener (exp (gen) (mul y x-0)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x-0))+  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x-0) (gen)) (a b)+    ((exp (gen) (mul (rec x) y x-0)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (5 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+    (exp (gen) (mul (rec x) y x-0)) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) y x-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))) (send nb))+    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x-0)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x-0)))))))+    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))+      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))+  (label 133)+  (parent 130)+  (unrealized (5 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((3 0) (0 0)) ((4 1) (0 2)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+  (label 134)+  (parent 131)+  (unrealized (5 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))+    ((4 2) (5 0)) ((5 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (1 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 135)+  (parent 132)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))+    ((4 2) (5 0)) ((5 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (1 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 136)+  (parent 132)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul x w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (5 0))+  (operation nonce-test+    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)+      (w (mul w y))) (gen) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 137)+  (parent 133)+  (unrealized (1 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (deflistener (exp (gen) (mul w x x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 6 0 init 2) (exp (gen) x-0) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 138)+  (parent 133)+  (unrealized (0 2) (1 0) (4 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (deflistener (exp (gen) (mul x w x-0 y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)) ((6 1) (4 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((recv (exp (gen) (mul x w x-0 y)))+      (send (exp (gen) (mul x w x-0 y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 139)+  (parent 133)+  (unrealized (0 2) (1 0) (4 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul x w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 6 4 resp 3) (exp (gen) y-0) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 140)+  (parent 133)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (deflistener (exp (gen) (mul x-0 w y y-0)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)) ((6 2) (4 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((recv (exp (gen) (mul x-0 w y y-0)))+      (send (exp (gen) (mul x-0 w y y-0))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 141)+  (parent 133)+  (unrealized (0 2) (1 0) (4 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener (exp (gen) (mul x w l y)))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-0) (5 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 142)+  (parent 133)+  (unrealized (0 2) (1 0) (4 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (deflistener (exp (gen) (mul x w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-0) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 143)+  (parent 133)+  (unrealized (0 2) (1 0) (4 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener (exp (gen) (mul x w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (5 0)) ((5 1) (0 2)) ((6 0) (4 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 144)+  (parent 133)+  (unrealized (0 2) (1 0) (4 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxa) ltxb))+  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (0 2)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) ltxb))+    (exp (gen) (mul ltxa ltxb)) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxa) ltxb))+      (send (cat (exp (gen) ltxa) ltxb))))+  (label 145)+  (parent 134)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) ltxa))+  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((4 1) (0 2)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) ltxa))+    (exp (gen) (mul ltxa ltxb)) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))+      (send nb))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))+      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) ltxa))+      (send (cat (exp (gen) ltxb) ltxa))))+  (label 146)+  (parent 134)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul x w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (precur (5 0))+  (operation nonce-test (added-listener y) (mul w y) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 147)+  (parent 137)+  (unrealized (1 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x y)))+  (deflistener (exp (gen) (mul w x x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x x)))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x x)) (gen)) (a b)+    ((exp (gen) (mul w x y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))) (send nb))+    ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x x y)))))))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 148)+  (parent 138)+  (unrealized (1 0) (4 1) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w x-0 y)))+  (deflistener (exp (gen) (mul x w x-0 y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (4 1)) ((7 1) (5 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)+    ((exp (gen) (mul w x-0 y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))) (send nb))+    ((recv (exp (gen) (mul x w x-0 y)))+      (send (exp (gen) (mul x w x-0 y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w x-0 y)))))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 149)+  (parent 139)+  (unrealized (1 0) (4 1) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx)+    (w-0 expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul x w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) (mul x w y (rec w-0))) w-0))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x w y (rec w-0))) w-0))+    (exp (gen) (mul x w y)) (1 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))) (send nb))+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) (mul x w y (rec w-0))) w-0))+      (send (cat (exp (gen) (mul x w y (rec w-0))) w-0))))+  (label 150)+  (parent 140)+  (unrealized (6 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul w y y-0)))+  (deflistener (exp (gen) (mul x-0 w y y-0)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul x-0 w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 2) (4 1)) ((7 1) (5 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)+    ((exp (gen) (mul w y y-0)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))) (send nb))+    ((recv (exp (gen) (mul x-0 w y y-0)))+      (send (exp (gen) (mul x-0 w y y-0))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x-0 w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x-0 w y y-0)))))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 151)+  (parent 141)+  (unrealized (1 0) (4 1) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener (exp (gen) (mul x w l y)))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (5 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 152)+  (parent 142)+  (unrealized (1 0) (4 1) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul w l y)))+  (deflistener (exp (gen) (mul x w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))+      (send nb))+    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 153)+  (parent 143)+  (unrealized (1 0) (4 1) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w l y)))+  (deflistener (exp (gen) (mul x w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 0) (4 1)) ((7 1) (5 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x w l)) (gen)) (a b)+    ((exp (gen) (mul w l y)) (gen)))+  (precur (5 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))) (send nb))+    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul x w l y)))))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 154)+  (parent 144)+  (unrealized (1 0) (4 1) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (exp (gen) (mul w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (gen) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test+    (contracted (x-0 x) (w-0 (mul (rec x) w)) (y-0 y) (w-1 (mul w y))+      (y-1 y) (w (mul w y))) (gen) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))+  (label 155)+  (parent 150)+  (unrealized (0 2) (5 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul w x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 7 0 init 2) (exp (gen) x-0) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))) (send nb))+    ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))))+  (label 156)+  (parent 150)+  (unrealized (1 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w x-0 y)))+  (deflistener (exp (gen) (mul w x-0 y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x-0)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (4 1)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))) (send nb))+    ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))+      (send (cat (exp (gen) y) (mul (rec x) w x-0))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))+  (label 157)+  (parent 150)+  (unrealized (0 2) (1 0) (5 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (exp (gen) (mul w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (exp (gen) y) w))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen x ltxa ltxb y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 7 4 resp 3) (exp (gen) y-0) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))+  (label 158)+  (parent 150)+  (unrealized (0 2) (5 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul (rec x-0) w y y-0)))+  (deflistener (exp (gen) (mul w y y-0)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul w y)))+  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 2) (4 1)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)+    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-strand resp 3) (exp (gen) y) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul (rec x-0) w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))) (send nb))+    ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))))+    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))+      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))))+  (label 159)+  (parent 150)+  (unrealized (0 2) (1 0) (5 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (exp (gen) (mul w l y)))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 7 2 ltx-gen 1) (exp (gen) l-0) (6 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 160)+  (parent 150)+  (unrealized (0 2) (1 0) (5 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (exp (gen) (mul w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l-0) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))))+  (label 161)+  (parent 150)+  (unrealized (0 2) (1 0) (5 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (exp (gen) (mul w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 0) (4 1)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))) (send nb))+    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))))+  (label 162)+  (parent 150)+  (unrealized (0 2) (1 0) (5 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (exp (gen) (mul w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (gen) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))+    ((recv y) (send y)))+  (label 163)+  (parent 155)+  (unrealized (0 2) (5 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul w x y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) x) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))) (send nb))+    ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x y)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) x) (mul w y)))+      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))+  (label 164)+  (parent 156)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w x-0 y)))+  (deflistener (exp (gen) (mul w x-0 y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x-0)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) (mul w y)))+  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (x x-0))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (8 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (4 1))+    ((8 1) (6 0)))+  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))+    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))+    (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x x-0 y)+  (uniq-orig na nb na-0)+  (operation nonce-test (added-listener y) (mul w y) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w x-0 y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))) (send nb))+    ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x-0))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w x-0 y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))+      (send (cat (exp (gen) y) (mul (rec x) w x-0))))+    ((recv (cat (exp (gen) x-0) (mul w y)))+      (send (cat (exp (gen) x-0) (mul w y))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))+  (label 165)+  (parent 157)+  (unrealized (0 2) (5 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (exp (gen) (mul y x)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) (one)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (contracted (x-0 x) (w x)) (one) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))+      (send nb))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 166)+  (parent 158)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb y x l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul y l)))+  (deflistener (exp (gen) (mul y x l)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul x l)))+  (deflistener (cat (exp (gen) y) l))+  (deflistener (cat (exp (gen) y) (mul x l)))+  (defstrand ltx-gen 3 (self self) (l l))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 0) (4 1))+    ((7 2) (5 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul x l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul x l)) (gen)) (a b)+    ((exp (gen) (mul y l)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb y x l)+  (uniq-orig na nb)+  (operation nonce-test (added-strand ltx-gen 3) l (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul y l))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x l)))))) (send nb))+    ((recv (exp (gen) (mul y x l))) (send (exp (gen) (mul y x l))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul x l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul y x l)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))+    ((recv (cat (exp (gen) y) (mul x l)))+      (send (cat (exp (gen) y) (mul x l))))+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l)))+  (label 167)+  (parent 158)+  (unrealized (1 0) (4 1) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul w y x)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) y) (mul w x)))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))+  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (added-absence x w) w (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))) (send nb))+    ((recv (exp (gen) (mul w y x))) (send (exp (gen) (mul w y x))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) y) (mul w x)))+      (send (cat (exp (gen) y) (mul w x)))))+  (label 168)+  (parent 158)+  (unrealized (1 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w y)))+  (deflistener (exp (gen) (mul w y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x w))+  (deflistener (cat (exp (gen) y) (mul (rec x) w)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener x)+  (precedes ((0 1) (4 1)) ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0))+    ((4 2) (5 0)) ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0))+    ((7 1) (5 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) w) (gen)) (a b)+    ((exp (gen) (mul (rec x) w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen x ltxa ltxb y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener x) (mul (rec x) w) (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))+      (send nb))+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) w)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w)))+      (send (cat (exp (gen) y) (mul (rec x) w))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv x) (send x)))+  (label 169)+  (parent 158)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)+    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)+    (y y-0 rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x-0) (y (mul (rec x-0) w y y-0)))+  (deflistener (exp (gen) (mul w y y-0)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y-0) (x (mul w y)))+  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))+  (deflistener (cat (exp (gen) y) (mul w y-0)))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)+    (ltxb ltxb-0) (y y) (x x))+  (deflistener y-0)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (8 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 2) (4 1))+    ((8 1) (6 0)))+  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))+    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))+    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))+    (x-0 (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))+    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)+    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x-0 y y-0)+  (uniq-orig na nb nb-0)+  (operation nonce-test (added-listener y-0) (mul w y-0) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x-0)))+      (recv+        (cat (exp (gen) (mul (rec x-0) w y y-0))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))) (send nb))+    ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w y))))+      (send+        (cat (exp (gen) y-0)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y y-0)))))))+    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))+      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))+    ((recv (cat (exp (gen) y) (mul w y-0)))+      (send (cat (exp (gen) y) (mul w y-0))))+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))+      (recv (cat na-0 a-0 b-0 (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na-0 nb-0 a-0 b-0+            (hash (exp (gen) (mul ltxa-0 ltxb-0))+              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))+  (label 170)+  (parent 159)+  (unrealized (0 2) (5 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (exp (gen) (mul w l y)))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (6 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 171)+  (parent 160)+  (unrealized (0 2) (5 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (exp (gen) (mul w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))+      (send nb))+    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))+  (label 172)+  (parent 161)+  (unrealized (0 2) (5 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)+    (l y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul (rec x) w l y)))+  (deflistener (exp (gen) (mul w l y)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w l)))+  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))+  (deflistener (cat (exp (gen) l) (mul w y)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener y)+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))+    ((4 2) (8 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 0) (4 1))+    ((8 1) (6 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))+    ("principal-of" (l self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w l)) (gen)) (a b)+    ((exp (gen) (mul (rec x) w l y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb x l y)+  (uniq-orig na nb)+  (operation nonce-test (added-listener y) (mul w y) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul (rec x) w l y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))) (send nb))+    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w l))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w l y)))))))+    ((recv (cat (exp (gen) y) (mul (rec x) w l)))+      (send (cat (exp (gen) y) (mul (rec x) w l))))+    ((recv (cat (exp (gen) l) (mul w y)))+      (send (cat (exp (gen) l) (mul w y))))+    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))+  (label 173)+  (parent 162)+  (unrealized (0 2) (5 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um+  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y (mul w y)))+  (deflistener (exp (gen) (mul w y x)))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x (mul w x)))+  (deflistener (cat (exp (gen) y) w))+  (deflistener (cat (exp (gen) y) (mul w x)))+  (deflistener x)+  (precedes ((0 1) (4 1)) ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0))+    ((4 2) (5 0)) ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0))+    ((7 1) (6 0)))+  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) (mul w x)) (gen)) (a b)+    ((exp (gen) (mul w y)) (gen)))+  (precur (6 0) (5 0))+  (uniq-gen ltxa ltxb y x)+  (uniq-orig na nb)+  (operation nonce-test (added-listener x) (mul w x) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) (mul w y))+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))) (send nb))+    ((recv (exp (gen) (mul w y x))) (send (exp (gen) (mul w y x))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) (mul w x))))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa ltxb))+              (exp (gen) (mul w y x)))))))+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))+    ((recv (cat (exp (gen) y) (mul w x)))+      (send (cat (exp (gen) y) (mul w x)))) ((recv x) (send x)))+  (label 174)+  (parent 168)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/dhcr_um3.scm view
@@ -0,0 +1,126 @@+; Unified Model.   This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  We use+; function relation declarations to link names to long-term public+; values.++;;; This file contains the three-part version, in which each ephemeral+;;; is mixed with the peer's static exponent, and also with the other+;;; ephemeral.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "DHCR: unified model (UM) three-part" (bound 20) (limit 8000) (algebra diffie-hellman))++(defmacro (kcfa ltxa ltxb x hy)+  (hash (exp hy ltxa) (exp (gen) (mul ltxb x)) (exp hy x)))++(defmacro (kcfb ltxa ltxb y hx)+  (hash (exp (gen) (mul ltxa y)) (exp hx ltxb) (exp hx y)))++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace+     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+     (send (cat na a b (exp (gen) x)))+     (recv (cat (exp (gen) y) (enc na nb a b (kcfa ltxa ltxb x (exp (gen) y)))))+     (send nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+           ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen x)+    (uniq-orig na)+    (neq ((exp (gen) y) (gen))))++  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace+     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+     (recv (cat na a b (exp (gen) x)))+     (send (cat (exp (gen) y) (enc na nb a b (kcfb ltxa ltxb y (exp (gen) x)))))+     (recv nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+	   ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen y)+    (uniq-orig nb)+    (neq ((exp (gen) x) (gen))))++  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self (exp (gen) l)))+     (recv "end-of-protocol")+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))))++; Initiator point of view: both LTX exponents secret+(defskeleton dhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb) (neq (a b)))++; Initiator point of view: partner's exponent secret+(defskeleton dhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxb)+  (neq (a b)))++; Initiator point of view: partner's exponent secret, listener for xy+(defskeleton dhcr-um3+  (vars (ltxa ltxb x y rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y))+  (defstrand ltx-gen 1 (l ltxb))+  (deflistener (mul x y))+  (non-orig ltxb)+  (neq (a b)))++; Responder point of view; both exponents secret+(defskeleton dhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb)+  (neq (a b)))++; Responder point of view; partner's exponent secre+(defskeleton dhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton dhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (kcfa ltxa ltxb x (exp (gen) y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))
+ tst/dhcr_um3.tst view
@@ -0,0 +1,2327 @@+(herald "DHCR: unified model (UM) three-part" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/dhcr_um3.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat self (exp (gen) ltxa))))+    ((send (cat self-0 (exp (gen) ltxb)))))+  (label 0)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb)))))+  (label 1)+  (parent 0)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+        (exp (gen) (mul y x)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x))))))))+  (label 2)+  (parent 1)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (nb (3 2)) (na (0 1))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y))))))+  (label 3)+  (parent 1)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y))))))+  (label 4)+  (parent 3)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 5)+  (parent 4)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxb))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat self (exp (gen) ltxb)))))+  (label 6)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat b (exp (gen) ltxb)))))+  (label 7)+  (parent 6)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen y x ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+        (exp (gen) (mul y x)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x))))))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (nb (2 2)) (na (0 1))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y))))))+  (label 9)+  (parent 7)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y))))))+  (label 10)+  (parent 9)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 11)+  (parent 10)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxb))+  (deflistener (mul x y))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat self (exp (gen) ltxb))))+    ((recv (mul x y)) (send (mul x y))))+  (label 12)+  (unrealized (0 0) (0 2) (2 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (mul x y))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (mul x y)) (send (mul x y))))+  (label 13)+  (parent 12)+  (unrealized (0 2) (2 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (mul x y))+  (deflistener x)+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((3 1) (2 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener x) (mul x y) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (mul x y)) (send (mul x y))) ((recv x) (send x)))+  (label 14)+  (parent 13)+  (unrealized (0 2) (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat self (exp (gen) ltxa))))+    ((send (cat self-0 (exp (gen) ltxb)))))+  (label 15)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb)))))+  (label 16)+  (parent 15)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+        (exp (gen) (mul y x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb)))+  (label 17)+  (parent 16)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (3 1)) (nb (0 2))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul y x)))) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul y x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x))))))+  (label 18)+  (parent 16)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul y x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x))))))+  (label 19)+  (parent 18)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul ltxa y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 20)+  (parent 19)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat self (exp (gen) ltxa)))))+  (label 21)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa)))))+  (label 22)+  (parent 21)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen y x ltxa)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+        (exp (gen) (mul y x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb)))+  (label 23)+  (parent 22)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (2 1)) (nb (0 2))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul y x)))) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul y x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x))))))+  (label 24)+  (parent 22)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul y x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x))))))+  (label 25)+  (parent 24)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul ltxa y)) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    ((send (cat a (exp (gen) ltxa))))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 26)+  (parent 25)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul y x)))))) (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-um3+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 27)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 28)+  (parent 27)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+        (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))) (1 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y))))))+  (label 29)+  (parent 28)+  (unrealized (0 2) (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 30)+  (parent 29)+  (unrealized (0 2) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) ltxb))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))+    (exp (gen) (mul ltxb x)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))+  (label 31)+  (parent 29)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))+  (label 32)+  (parent 31)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+        (exp (gen) (mul y x)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x))))))))+  (label 33)+  (parent 32)+  (unrealized (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+        (exp (gen) (mul x y))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+        (exp (gen) (mul x y)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y))))))+  (label 34)+  (parent 32)+  (unrealized (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) ltxa))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))+    (exp (gen) (mul y ltxa)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))+  (label 35)+  (parent 33)+  (unrealized (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul y ltxa)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 36)+  (parent 33)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+        (exp (gen) (mul x y))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y))))))+  (label 37)+  (parent 34)+  (unrealized (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))+    ((7 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 2 ltx-gen 3) l (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))+  (label 38)+  (parent 35)+  (unrealized (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) l))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) x) l))+    (exp (gen) (mul x l)) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))+  (label 39)+  (parent 37)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+      (exp (gen) (mul x y))))+  (deflistener (cat (exp (gen) l) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) l) x))+    (exp (gen) (mul x l)) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+              (exp (gen) (mul x y)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+         (exp (gen) (mul x y))))+      (send+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))+          (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))+  (label 40)+  (parent 37)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) l))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))+    ((6 2) (8 0)) ((7 1) (4 0)) ((8 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul y x)) (4 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 41)+  (parent 38)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-um3+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+      (exp (gen) (mul y x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) l))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))+    ((6 2) (8 0)) ((7 1) (4 0)) ((8 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul y x)) (4 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))) (send nb))+    ((recv+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+         (exp (gen) (mul y x))))+      (send+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+          (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))+              (exp (gen) (mul y x)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 42)+  (parent 38)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/dhcr_umx.scm view
@@ -0,0 +1,135 @@+; Unified Model.  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  We use+; function relation declarations to link names to long-term public+; values.++;;; This file contains the criss-cross version, in which each+;;; ephemeral is mixed with the peer's static exponent.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "DHCR: unified model (UM) criss-cross" (bound 20) (limit 8000) (algebra diffie-hellman))++(defmacro (kcfa ltxa ltxb x hy)+  (hash (exp hy ltxa) (exp (gen) (mul ltxb x))))++(defmacro (kcfb ltxa ltxb y hx)+  (hash (exp (gen) (mul ltxa y)) (exp hx ltxb)))++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace+     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+     (send (cat na a b (exp (gen) x)))+     (recv (cat (exp (gen) y) (enc na nb a b (kcfa ltxa ltxb x (exp (gen) y)))))+     (send nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+           ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen x)+    (uniq-orig na)+    (neq ((exp (gen) y) (gen))))++  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace+     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+     (recv (cat na a b (exp (gen) x)))+     (send (cat (exp (gen) y) (enc na nb a b (kcfb ltxa ltxb y (exp (gen) x)))))+     (recv nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+	   ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen y)+    (uniq-orig nb)+    (neq ((exp (gen) x) (gen))))++  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self (exp (gen) l)))+     (recv "end-of-protocol")+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))))++; Omitting the a\not=b changes basically nothing.+(defskeleton dhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (non-orig ltxb)+;   (neq (a b))+  )++; Initiator point of view: partner's exponent secret+(defskeleton dhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (non-orig ltxb)+  (neq (a b)))++; Initiator point of view: both LTX exponents secret+(defskeleton dhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb) (neq (a b)))++; Responder point of view; both exponents secret+(defskeleton dhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb)+  (neq (a b)))++; Responder point of view; partner's exponent secre+(defskeleton dhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  (neq (a b)))++(defskeleton dhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  ;; (neq (a b))+  )++;;; Forward secrecy, neither long-term exponent secure+(defskeleton dhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (kcfa ltxa ltxb x (exp (gen) y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))
+ tst/dhcr_umx.tst view
@@ -0,0 +1,2275 @@+(herald "DHCR: unified model (UM) criss-cross" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/dhcr_umx.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb)))))+  (label 0)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen y x ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa))+              (exp (gen) (mul x ltxb))))))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (nb (2 2)) (na (0 1))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 2)+  (parent 0)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 3)+  (parent 2)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 4)+  (parent 3)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb)))))+  (label 5)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen y x ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa))+              (exp (gen) (mul x ltxb))))))))+  (label 6)+  (parent 5)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (nb (2 2)) (na (0 1))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 7)+  (parent 5)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 8)+  (parent 7)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 9)+  (parent 8)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat self (exp (gen) ltxa))))+    ((send (cat self-0 (exp (gen) ltxb)))))+  (label 10)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb)))))+  (label 11)+  (parent 10)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa))+              (exp (gen) (mul x ltxb))))))))+  (label 12)+  (parent 11)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)+        (nb nb))))+  (origs (nb (3 2)) (na (0 1))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 13)+  (parent 11)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 14)+  (parent 13)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 15)+  (parent 14)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat self (exp (gen) ltxa))))+    ((send (cat self-0 (exp (gen) ltxb)))))+  (label 16)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb)))))+  (label 17)+  (parent 16)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb)))+  (label 18)+  (parent 17)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (3 1)) (nb (0 2))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 19)+  (parent 17)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 20)+  (parent 19)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul ltxa y)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((send (cat b (exp (gen) ltxb))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 21)+  (parent 20)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))+  (label 22)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa)))))+  (label 23)+  (parent 22)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen y x ltxa)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb)))+  (label 24)+  (parent 23)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (2 1)) (nb (0 2))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 25)+  (parent 23)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 26)+  (parent 25)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul ltxa y)) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 27)+  (parent 26)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))+  (label 28)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa)))))+  (label 29)+  (parent 28)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))+    (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen y x ltxa)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb)))+  (label 30)+  (parent 29)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (2 1)) (nb (0 2))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 31)+  (parent 29)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 32)+  (parent 31)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul ltxa y)) (3 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb)) ((send (cat a (exp (gen) ltxa))))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 33)+  (parent 32)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))+      (y (exp (gen) x))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton dhcr-umx+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 34)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 35)+  (parent 34)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (1 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+  (label 36)+  (parent 35)+  (unrealized (0 2) (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) ltxb) x))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))+    (exp (gen) (mul ltxb x)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))+  (label 37)+  (parent 36)+  (unrealized (0 2) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+  (deflistener (cat (exp (gen) x) ltxb))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))+    (exp (gen) (mul ltxb x)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))+  (label 38)+  (parent 36)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) x) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))+  (label 39)+  (parent 38)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa))+              (exp (gen) (mul x ltxb))))))))+  (label 40)+  (parent 39)+  (unrealized (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+    (enc na nb a b+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))) (0 2))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+  (label 41)+  (parent 39)+  (unrealized (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) ltxa))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))+    (exp (gen) (mul y ltxa)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))))+    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))+  (label 42)+  (parent 40)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) ltxa) y))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))+    ((7 1) (4 0)))+  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxa ltxb)+  (uniq-orig na nb)+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))+    (exp (gen) (mul y ltxa)) (4 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))))+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))+  (label 43)+  (parent 40)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))) (6 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+  (label 44)+  (parent 41)+  (unrealized (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) l))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))+    ((7 1) (4 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation nonce-test (displaced 8 2 ltx-gen 3) l (7 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))+  (label 45)+  (parent 42)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) x) l))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) x) l))+    (exp (gen) (mul x l)) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))+  (label 46)+  (parent 44)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) x) l))+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+  (deflistener (cat (exp (gen) l) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (added-listener (cat (exp (gen) l) x))+    (exp (gen) (mul x l)) (7 0))+  (traces+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))+      (send nb))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))+  (label 47)+  (parent 44)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat (exp (gen) x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) l))+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (5 0))+    ((3 2) (4 0)) ((4 1) (1 0)) ((5 2) (0 2)) ((6 1) (1 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))+  (label 48)+  (parent 45)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat (exp (gen) y) l))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (4 0))+    ((3 2) (1 0)) ((4 2) (0 2)) ((5 1) (1 0)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))))+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))+  (label 49)+  (parent 48)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhcr-umx+  (vars (na nb data) (a b name) (y x ltxb l rndx))+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (x x) (y y))+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (4 0))+    ((3 2) (1 0)) ((4 2) (0 2)))+  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))+    (x (exp (gen) l)) (x (exp (gen) ltxb)))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y x ltxb l)+  (uniq-orig na nb)+  (operation generalization deleted (5 0))+  (traces+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (send (cat na a b (exp (gen) x)))+      (recv+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))+      (send nb))+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))+    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))+    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))+      (recv (cat na a b (exp (gen) x)))+      (send+        (cat (exp (gen) y)+          (enc na nb a b+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))))+  (label 50)+  (parent 49)+  (unrealized)+  (shape)+  (maps+    ((0 1 2 3)+      ((ltxa l) (ltxb ltxb) (x x) (y y) (a a) (b b) (na na) (nb nb))))+  (origs (nb (4 2)) (na (0 1))))++(comment "Nothing left to do")
− tst/dhnsl.lisp
@@ -1,51 +0,0 @@-(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"-;  (limit 1)-  (algebra diffie-hellman))--(defprotocol dhnsl diffie-hellman-  (defrole init-    (vars (a b name) (h2 h3 base) (x expn))-    (trace-     (send (enc (exp (gen) x) a (pubk b)))-     (recv (enc h2 (exp h2 x) h3 b (pubk a)))-     (send (enc (exp h3 x) (pubk b)))-    )-    (uniq-gen x)-    (comment "X should be assumed to be freshly chosen per role")-  )-  (defrole resp-    (vars (b a name) (h1 base) (y z expn))-    (trace-     (recv (enc h1 a (pubk b)))-     (send (enc (exp (gen) y) (exp h1 y) (exp (gen) z) b (pubk a)))-     (recv (enc (exp h1 z) (pubk b)))-    )-    (uniq-gen y z)-    (comment "Y and Z should be assumed to be freshly chosen per role")-  )-  (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces")-)--;;; The initiator point-of-view-(defskeleton dhnsl-  (vars (a b name) (h2 h3 base) (x expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x))-  (non-orig (privk b) (privk a))-  (comment "Initiator point-of-view"))--;;; The responder point-of-view-(defskeleton dhnsl-  (vars (a b name) (h1 base) (y z expn))-  (defstrand resp 3 (a a) (b b) (h1 h1) (y y) (z z))-  (non-orig (privk a))-  (comment "Responder point-of-view"))--;(defskeleton dhnsl-;  (vars (a b a-0 b-0 name) (y z z-0 x expn))-;  (defstrand resp 3 (b b) (a a) (h1 (exp (gen) (mul (rec z-0) x))) (y y)-;    (z z))-;  (defstrand init 1 (a a-0) (b b-0) (x x))-;  (precedes ((1 0) (0 0)))-;  (non-orig (privk a))-;  (uniq-gen y z x)-;  (comment "empty cohort"))
− tst/dhnsl.tst
@@ -1,5826 +0,0 @@-(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"-  (algebra diffie-hellman))--(comment "CPSA 3.4.0")-(comment "All input read from dhnsl.lsp")--(defprotocol dhnsl diffie-hellman-  (defrole init-    (vars (a b name) (h2 h3 base) (x expn))-    (trace (send (enc (exp (gen) x) a (pubk b)))-      (recv (enc h2 (exp h2 x) h3 b (pubk a)))-      (send (enc (exp h3 x) (pubk b))))-    (uniq-gen x)-    (comment "X should be assumed to be freshly chosen per role"))-  (defrole resp-    (vars (b a name) (h1 base) (y z expn))-    (trace (recv (enc h1 a (pubk b)))-      (send (enc (exp (gen) y) (exp h1 y) (exp (gen) z) b (pubk a)))-      (recv (enc (exp h1 z) (pubk b))))-    (uniq-gen y z)-    (ind-zero-in (y h1) (z h1))-    (comment "Y and Z should be assumed to be freshly chosen per role"))-  (comment-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhnsl-  (vars (a b name) (h2 h3 base) (x expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (comment "Initiator point-of-view")-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc h2 (exp h2 x) h3 b (pubk a)))-      (send (enc (exp h3 x) (pubk b)))))-  (label 0)-  (unrealized (0 1))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 name) (h2 h3 h2-0 base) (x x-0 x-1 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-0 (rec x-1)))) (x x-1))-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x x-1)-  (operation nonce-test (added-strand init 3) (exp h2 x) (0 1)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc h2 (exp h2 x) h3 b (pubk a)))-      (send (enc (exp h3 x) (pubk b))))-    ((send (enc (exp (gen) x-1) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-1) (exp h2 (mul x x-0 (rec x-1))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-0)) (pubk b-0)))))-  (label 1)-  (parent 0)-  (unrealized (1 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b name) (h3 base) (x x-0 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp (gen) (rec x))) (h3 h3)-    (x x-0))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0)-  (operation nonce-test (displaced 1 0 init 1)-    (exp (gen) (mul (rec x) x-1)) (0 1)-    (enc (exp (gen) x-1) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv-        (enc (exp (gen) (rec x)) (exp (gen) (mul (rec x) x-0)) h3 b-          (pubk a))) (send (enc (exp h3 x-0) (pubk b)))))-  (label 2)-  (parent 0)-  (seen 2)-  (unrealized (0 1))-  (origs)-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-0) x-1))) (x x-0))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-3)))) (x x-3))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-1 x-3)-  (operation nonce-test (added-strand init 3) (exp h2-0 x-0) (1 1)-    (exp (gen) x-0))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-0) (exp h2 (mul x (rec x-0) x-1)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-3) (exp h2-0 (mul x-0 x-2 (rec x-3))) b-1-          (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1)))))-  (label 3)-  (parent 1)-  (unrealized (1 1) (2 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 name) (h2 h3 h2-0 base)-    (x z x-0 x-1 x-2 x-3 x-4 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-4))-    (h3 (exp h2 (mul x (rec x-0) x-1))) (x x-0))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-0 x-2)))-    (y x-3) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))-  (ind-zero-in (x-3 (exp h2-0 (mul x-0 x-2)))-    (z (exp h2-0 (mul x-0 x-2))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-0 x-1 x-3)-  (operation nonce-test (added-strand resp 2) (exp h2-0 (mul x-0 x-4))-    (1 1) (exp (gen) x-0))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-4) (exp h2-0 (mul x-0 x-4))-          (exp h2 (mul x (rec x-0) x-1)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-0 x-2)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-3) (exp h2-0 (mul x-0 x-2 x-3)) (exp (gen) z)-          b-1 (pubk a-1)))))-  (label 4)-  (parent 1)-  (unrealized (1 1) (2 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 name) (h2 h3 base) (x x-0 x-1 x-2 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x-2))-    (h3 (exp h2 (mul x x-0 (rec x-1)))) (x x-1))-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x x-1)-  (operation nonce-test (algebra-contracted (h2-0 (exp (gen) x-2)))-    (exp (gen) (mul x-1 x-2)) (1 1) (exp (gen) x-1))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc h2 (exp h2 x) h3 b (pubk a)))-      (send (enc (exp h3 x) (pubk b))))-    ((send (enc (exp (gen) x-1) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-2) (exp (gen) (mul x-1 x-2))-          (exp h2 (mul x x-0 (rec x-1))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-0)) (pubk b-0)))))-  (label 5)-  (parent 1)-  (unrealized (1 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-1) x-3))) (x x-1))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-5)))) (x x-5))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-3 x-5)-  (operation nonce-test (added-strand init 3) (exp h2-1 x-1) (2 1)-    (exp (gen) x-1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-1) (exp h2-0 (mul x-0 (rec x-1) x-3)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-5) (exp h2-1 (mul x-1 x-4 (rec x-5))) b-2-          (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2)))))-  (label 6)-  (parent 3)-  (unrealized (1 1) (2 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 h2-0 h2-1 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-6))-    (h3 (exp h2-0 (mul x-0 (rec x-1) x-3))) (x x-1))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-1 (mul x-1 x-4)))-    (y x-5) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-5 (exp h2-1 (mul x-1 x-4)))-    (z (exp h2-1 (mul x-1 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-5)-  (operation nonce-test (added-strand resp 2) (exp h2-1 (mul x-1 x-6))-    (2 1) (exp (gen) x-1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-6) (exp h2-1 (mul x-1 x-6))-          (exp h2-0 (mul x-0 (rec x-1) x-3)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((recv (enc (exp h2-1 (mul x-1 x-4)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-5) (exp h2-1 (mul x-1 x-4 x-5)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 7)-  (parent 3)-  (unrealized (1 1) (2 1) (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-0) x-1))) (x x-0))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-4))-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-3)))) (x x-3))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-1 x-3)-  (operation nonce-test (algebra-contracted (h2-1 (exp (gen) x-4)))-    (exp (gen) (mul x-3 x-4)) (2 1) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-0) (exp h2 (mul x (rec x-0) x-1)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-4) (exp (gen) (mul x-3 x-4))-          (exp h2-0 (mul x-0 x-2 (rec x-3))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1)))))-  (label 8)-  (parent 3)-  (unrealized (1 1) (2 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 name) (h2 h3 h2-0 h2-1 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x x-1 (rec x-2)))) (x x-2))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-2 x-4))) (y z)-    (z x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-2 x-4 x-5 (rec x-6)))) (x x-6))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 2) (2 0)))-  (ind-zero-in (z (exp h2-0 (mul x-2 x-4)))-    (x-3 (exp h2-0 (mul x-2 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-6)-  (operation nonce-test (added-strand init 3) (exp h2-0 (mul x-2 x-4))-    (2 0) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-2))-          (exp h2 (mul x x-1 (rec x-2))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-2 x-4)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-2 x-4)) (exp (gen) x-3)-          b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-6) (exp h2-0 (mul x-2 x-4 x-5 (rec x-6)))-          b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-2 x-4 x-5)) (pubk b-2)))))-  (label 9)-  (parent 4)-  (unrealized (1 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 name) (h2 h3 h2-0 base)-    (x x-0 z z-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-7)))-    (h3 (exp h2 (mul x x-1 (rec x-2)))) (x x-2))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul x-2 x-4 x-5 x-6 (rec x-8)))) (y z-0) (z x-3))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-2 x-4 x-5)))-    (y x-6) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (ind-zero-in (x-6 (exp h2-0 (mul x-2 x-4 x-5)))-    (z (exp h2-0 (mul x-2 x-4 x-5)))-    (z-0 (exp h2-0 (mul x-2 x-4 x-5 x-6 (rec x-8))))-    (x-3 (exp h2-0 (mul x-2 x-4 x-5 x-6 (rec x-8)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-1 x-2 x-3 x-6)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul x-2 x-4 x-5 x-6 (rec x-8))) (2 0) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-7)) (exp h2-0 (mul x-0 x-2 x-7))-          (exp h2 (mul x x-1 (rec x-2))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv-       (enc (exp h2-0 (mul x-2 x-4 x-5 x-6 (rec x-8))) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-0 (mul z-0 x-2 x-4 x-5 x-6 (rec x-8))) (exp (gen) x-3)-          b-1 (pubk a-1))))-    ((recv (enc (exp h2-0 (mul x-2 x-4 x-5)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul x-2 x-4 x-5 x-6))-          (exp (gen) z) b-2 (pubk a-2)))))-  (label 10)-  (parent 4)-  (unrealized (1 1) (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 name) (h2 h3 base)-    (x z x-0 x-1 x-2 x-3 x-4 x-5 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul (rec x-2) x-4 x-5)))-    (h3 (exp h2 (mul x (rec x-0) x-1))) (x x-0))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp (gen) (mul x-0 x-5)))-    (y x-3) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))-  (ind-zero-in (x-3 (exp (gen) (mul x-0 x-5)))-    (z (exp (gen) (mul x-0 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-0 x-1 x-3)-  (operation nonce-test-    (algebra-contracted (h2-0 (exp (gen) (mul (rec x-2) x-5))))-    (exp (gen) (mul x-0 x-5)) (2 0) (exp (gen) x-0))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul (rec x-2) x-4 x-5))-          (exp (gen) (mul x-0 (rec x-2) x-4 x-5))-          (exp h2 (mul x (rec x-0) x-1)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv (enc (exp (gen) (mul x-0 x-5)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-3) (exp (gen) (mul x-0 x-3 x-5)) (exp (gen) z)-          b-1 (pubk a-1)))))-  (label 11)-  (parent 4)-  (unrealized (1 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-0) x-1 x-2))) (x x-0))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-0)-    (h3 (exp h2 (mul (rec x-0) x-1 x-2 x-3 (rec x-4)))) (x x-4))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-1 x-4)-  (operation nonce-test (added-strand init 3)-    (exp h2 (mul (rec x-0) x-1 x-2)) (1 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-0))-          (exp h2 (mul (rec x-0) x-1 x-2)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-1 x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-0 (exp h2-0 x-4)-          (exp h2 (mul (rec x-0) x-1 x-2 x-3 (rec x-4))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul (rec x-0) x-1 x-2 x-3)) (pubk b-1)))))-  (label 12)-  (parent 5)-  (unrealized (2 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 name) (h2 h3 base)-    (x z x-0 x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 x-5)) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-0) x-1 x-2 x-3 x-4 (rec x-6)))) (x x-0))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul (rec x-0) x-1 x-2 x-3))) (y x-4) (z z))-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))-  (ind-zero-in (x-4 (exp h2 (mul (rec x-0) x-1 x-2 x-3)))-    (z (exp h2 (mul (rec x-0) x-1 x-2 x-3))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-0 x-1 x-4)-  (operation nonce-test (added-strand resp 2)-    (exp h2 (mul (rec x-0) x-1 x-2 x-3 x-4 (rec x-6))) (1 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc (exp h2 x-5) (exp h2 (mul x-1 x-5)) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-0))-          (exp h2 (mul (rec x-0) x-1 x-2 x-3 x-4 (rec x-6))) b-0-          (pubk a-0)))-      (send (enc (exp h2 (mul x-1 x-2 x-3 x-4 (rec x-6))) (pubk b-0))))-    ((recv (enc (exp h2 (mul (rec x-0) x-1 x-2 x-3)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-4) (exp h2 (mul (rec x-0) x-1 x-2 x-3 x-4))-          (exp (gen) z) b-1 (pubk a-1)))))-  (label 13)-  (parent 5)-  (unrealized (0 1) (2 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 name) (h3 base) (x x-0 x-1 x-2 x-3 expn))-  (defstrand init 3 (a a) (b b)-    (h2 (exp (gen) (mul (rec x) (rec x-0) x-1 x-1 x-3))) (h3 h3) (x x))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x-2))-    (h3 (exp (gen) (mul x-1 x-3))) (x x-1))-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x x-1)-  (operation nonce-test-    (algebra-contracted-      (h2 (exp (gen) (mul (rec x) (rec x-0) x-1 x-1 x-3))))-    (exp (gen) (mul x-1 x-3)) (1 1))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv-        (enc (exp (gen) (mul (rec x) (rec x-0) x-1 x-1 x-3))-          (exp (gen) (mul (rec x-0) x-1 x-1 x-3)) h3 b (pubk a)))-      (send (enc (exp h3 x) (pubk b))))-    ((send (enc (exp (gen) x-1) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-2) (exp (gen) (mul x-1 x-2))-          (exp (gen) (mul x-1 x-3)) b-0 (pubk a-0)))-      (send (enc (exp (gen) (mul x-1 x-1 x-3)) (pubk b-0)))))-  (label 14)-  (parent 5)-  (seen 14)-  (unrealized (0 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 (rec x-2) x-5))) (x x-2))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-3)-    (h3 (exp h2-2 (mul x-2 x-6 (rec x-7)))) (x x-7))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-5 x-7)-  (operation nonce-test (added-strand init 3) (exp h2-2 x-2) (3 1)-    (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-2) (exp h2-1 (mul x-1 (rec x-2) x-5)) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-5)) (pubk b-2))))-    ((send (enc (exp (gen) x-7) a-3 (pubk b-3)))-      (recv-        (enc h2-3 (exp h2-3 x-7) (exp h2-2 (mul x-2 x-6 (rec x-7))) b-3-          (pubk a-3)))-      (send (enc (exp h2-2 (mul x-2 x-6)) (pubk b-3)))))-  (label 15)-  (parent 6)-  (unrealized (1 1) (2 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 x-8))-    (h3 (exp h2-1 (mul x-1 (rec x-2) x-5))) (x x-2))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-2 (mul x-2 x-6)))-    (y x-7) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-7 (exp h2-2 (mul x-2 x-6)))-    (z (exp h2-2 (mul x-2 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-7)-  (operation nonce-test (added-strand resp 2) (exp h2-2 (mul x-2 x-8))-    (3 1) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 x-8) (exp h2-2 (mul x-2 x-8))-          (exp h2-1 (mul x-1 (rec x-2) x-5)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-5)) (pubk b-2))))-    ((recv (enc (exp h2-2 (mul x-2 x-6)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-7) (exp h2-2 (mul x-2 x-6 x-7)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 16)-  (parent 6)-  (unrealized (1 1) (2 1) (3 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-1) x-3))) (x x-1))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-6))-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-5)))) (x x-5))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-3 x-5)-  (operation nonce-test (algebra-contracted (h2-2 (exp (gen) x-6)))-    (exp (gen) (mul x-5 x-6)) (3 1) (exp (gen) x-5))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-1) (exp h2-0 (mul x-0 (rec x-1) x-3)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-6) (exp (gen) (mul x-5 x-6))-          (exp h2-1 (mul x-1 x-4 (rec x-5))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2)))))-  (label 17)-  (parent 6)-  (unrealized (1 1) (2 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-2) x-3))) (x x-2))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-1))-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-4)))) (x x-4))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-1 (mul x-4 x-6))) (y z)-    (z x-5))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-4 x-6 x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2-1 (mul x-4 x-6)))-    (x-5 (exp h2-1 (mul x-4 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test (added-strand init 3) (exp h2-1 (mul x-4 x-6))-    (3 0) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-2) (exp h2 (mul x (rec x-2) x-3)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-1) (exp h2-1 (mul x-1 x-4))-          (exp h2-0 (mul x-0 x-2 (rec x-4))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1))))-    ((recv (enc (exp h2-1 (mul x-4 x-6)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z) (exp h2-1 (mul z x-4 x-6)) (exp (gen) x-5)-          b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-8) (exp h2-1 (mul x-4 x-6 x-7 (rec x-8)))-          b-3 (pubk a-3)))-      (send (enc (exp h2-1 (mul x-4 x-6 x-7)) (pubk b-3)))))-  (label 18)-  (parent 7)-  (unrealized (1 1) (2 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 z z-0 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-2) x-3))) (x x-2))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 (mul x-1 x-9)))-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-4)))) (x x-4))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-1 (mul x-4 x-6 x-7 x-8 (rec x-10)))) (y z-0) (z x-5))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-1 (mul x-4 x-6 x-7)))-    (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 0))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 1) (3 0)))-  (ind-zero-in (x-8 (exp h2-1 (mul x-4 x-6 x-7)))-    (z (exp h2-1 (mul x-4 x-6 x-7)))-    (z-0 (exp h2-1 (mul x-4 x-6 x-7 x-8 (rec x-10))))-    (x-5 (exp h2-1 (mul x-4 x-6 x-7 x-8 (rec x-10)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test (added-strand resp 2)-    (exp h2-1 (mul x-4 x-6 x-7 x-8 (rec x-10))) (3 0) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-2) (exp h2 (mul x (rec x-2) x-3)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 (mul x-1 x-9)) (exp h2-1 (mul x-1 x-4 x-9))-          (exp h2-0 (mul x-0 x-2 (rec x-4))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1))))-    ((recv-       (enc (exp h2-1 (mul x-4 x-6 x-7 x-8 (rec x-10))) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-1 (mul z-0 x-4 x-6 x-7 x-8 (rec x-10)))-          (exp (gen) x-5) b-2 (pubk a-2))))-    ((recv (enc (exp h2-1 (mul x-4 x-6 x-7)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul x-4 x-6 x-7 x-8))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 19)-  (parent 7)-  (unrealized (1 1) (2 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 h2-0 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul (rec x-4) x-6 x-7)))-    (h3 (exp h2-0 (mul x-0 (rec x-1) x-3))) (x x-1))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul x-1 x-7)))-    (y x-5) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-5 (exp (gen) (mul x-1 x-7)))-    (z (exp (gen) (mul x-1 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-5)-  (operation nonce-test-    (algebra-contracted (h2-1 (exp (gen) (mul (rec x-4) x-7))))-    (exp (gen) (mul x-1 x-7)) (3 0) (exp (gen) x-1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul (rec x-4) x-6 x-7))-          (exp (gen) (mul x-1 (rec x-4) x-6 x-7))-          (exp h2-0 (mul x-0 (rec x-1) x-3)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((recv (enc (exp (gen) (mul x-1 x-7)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-5) (exp (gen) (mul x-1 x-5 x-7)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 20)-  (parent 7)-  (unrealized (1 1) (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2-0 (mul (rec x-1) x-3 x-4))) (x x-1))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 (rec x-6)))) (x x-6))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-3 x-6)-  (operation nonce-test (added-strand init 3)-    (exp h2-0 (mul (rec x-1) x-3 x-4)) (2 1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-1))-          (exp h2-0 (mul (rec x-1) x-3 x-4)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-3 x-4)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-6)-          (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 (rec x-6))) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul (rec x-1) x-3 x-4 x-5)) (pubk b-2)))))-  (label 21)-  (parent 8)-  (unrealized (1 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 h2-0 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-7))-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 x-6 (rec x-8)))) (x x-1))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-0 (mul (rec x-1) x-3 x-4 x-5))) (y x-6) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-6 (exp h2-0 (mul (rec x-1) x-3 x-4 x-5)))-    (z (exp h2-0 (mul (rec x-1) x-3 x-4 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-6)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 x-6 (rec x-8))) (2 1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-7) (exp h2-0 (mul x-3 x-7))-          (exp h2 (mul x x-2 (rec x-3))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-1))-          (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 x-6 (rec x-8))) b-1-          (pubk a-1)))-      (send-        (enc (exp h2-0 (mul x-3 x-4 x-5 x-6 (rec x-8))) (pubk b-1))))-    ((recv (enc (exp h2-0 (mul (rec x-1) x-3 x-4 x-5)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 x-6))-          (exp (gen) z) b-2 (pubk a-2)))))-  (label 22)-  (parent 8)-  (unrealized (1 1) (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h2 h3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul (rec x-0) (rec x-2) x-3 x-3 x-5)))-    (h3 (exp h2 (mul x (rec x-0) x-1))) (x x-0))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-4))-    (h3 (exp (gen) (mul x-3 x-5))) (x x-3))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-1 x-3)-  (operation nonce-test-    (algebra-contracted-      (h2-0 (exp (gen) (mul (rec x-0) (rec x-2) x-3 x-3 x-5))))-    (exp (gen) (mul x-3 x-5)) (2 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul (rec x-0) (rec x-2) x-3 x-3 x-5))-          (exp (gen) (mul (rec x-2) x-3 x-3 x-5))-          (exp h2 (mul x (rec x-0) x-1)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-4) (exp (gen) (mul x-3 x-4))-          (exp (gen) (mul x-3 x-5)) b-1 (pubk a-1)))-      (send (enc (exp (gen) (mul x-3 x-3 x-5)) (pubk b-1)))))-  (label 23)-  (parent 8)-  (unrealized (1 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x (rec x-4) x-5))) (x x-4))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-4)))-    (y x-6) (z x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-1 x-2 (rec z) x-4))) (x z))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul z x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 1)) ((3 2) (2 0)) ((4 2) (3 1)))-  (ind-zero-in (x-6 (exp h2-0 (mul x-1 x-4)))-    (x-3 (exp h2-0 (mul x-1 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (added-strand init 3) (exp h2-1 z) (3 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-4))-          (exp h2 (mul x (rec x-4) x-5)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-4)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul x-1 x-4 x-6))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 z) (exp h2-0 (mul x-1 x-2 (rec z) x-4)) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-8) (exp h2-1 (mul z x-7 (rec x-8))) b-3-          (pubk a-3))) (send (enc (exp h2-1 (mul z x-7)) (pubk b-3)))))-  (label 24)-  (parent 9)-  (unrealized (1 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x (rec x-4) x-5))) (x x-4))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-4)))-    (y x-6) (z x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-1 x-9))-    (h3 (exp h2-0 (mul x-1 x-2 (rec z-0) x-4))) (x z-0))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-1 (mul z-0 x-7)))-    (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 0)) ((3 2) (2 0)) ((4 1) (3 1)))-  (ind-zero-in (x-8 (exp h2-1 (mul z-0 x-7)))-    (z (exp h2-1 (mul z-0 x-7))) (x-6 (exp h2-0 (mul x-1 x-4)))-    (x-3 (exp h2-0 (mul x-1 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (added-strand resp 2) (exp h2-1 (mul z-0 x-9))-    (3 1) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-4))-          (exp h2 (mul x (rec x-4) x-5)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-4)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul x-1 x-4 x-6))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z-0) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-1 x-9) (exp h2-1 (mul z-0 x-9))-          (exp h2-0 (mul x-1 x-2 (rec z-0) x-4)) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-4)) (pubk b-2))))-    ((recv (enc (exp h2-1 (mul z-0 x-7)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul z-0 x-7 x-8)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 25)-  (parent 9)-  (unrealized (1 1) (3 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x x-1 (rec x-2)))) (x x-2))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-2 x-4))) (y z)-    (z x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-7))-    (h3 (exp h2-0 (mul x-2 x-4 x-5 (rec x-6)))) (x x-6))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 2) (2 0)))-  (ind-zero-in (z (exp h2-0 (mul x-2 x-4)))-    (x-3 (exp h2-0 (mul x-2 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-6)-  (operation nonce-test (algebra-contracted (h2-1 (exp (gen) x-7)))-    (exp (gen) (mul x-6 x-7)) (3 1) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-2))-          (exp h2 (mul x x-1 (rec x-2))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-2 x-4)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-2 x-4)) (exp (gen) x-3)-          b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-7) (exp (gen) (mul x-6 x-7))-          (exp h2-0 (mul x-2 x-4 x-5 (rec x-6))) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-2 x-4 x-5)) (pubk b-2)))))-  (label 26)-  (parent 9)-  (unrealized (1 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-1)))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8))) (y x-5) (z z-0))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-3 x-7 x-8)))-    (y z) (z x-6))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-1)-    (h3 (exp h2-0 (mul x-3 x-7 x-8 x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2-0 (mul x-3 x-7 x-8)))-    (x-6 (exp h2-0 (mul x-3 x-7 x-8)))-    (x-5 (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8)))-    (z-0 (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-10)-  (operation nonce-test (added-strand init 3)-    (exp h2-0 (mul x-3 x-7 x-8)) (3 0) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1)) (exp h2-0 (mul x-0 x-1 x-3))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv-       (enc (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-5)-          (exp h2-0 (mul (rec x-2) z x-3 x-5 x-7 x-8)) (exp (gen) z-0)-          b-1 (pubk a-1))))-    ((recv (enc (exp h2-0 (mul x-3 x-7 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-3 x-7 x-8))-          (exp (gen) x-6) b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-10) a-3 (pubk b-3)))-      (recv-        (enc h2-1 (exp h2-1 x-10)-          (exp h2-0 (mul x-3 x-7 x-8 x-9 (rec x-10))) b-3 (pubk a-3)))-      (send (enc (exp h2-0 (mul x-3 x-7 x-8 x-9)) (pubk b-3)))))-  (label 27)-  (parent 10)-  (unrealized (1 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 z z-0 z-1 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-1 x-11)))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul (rec x-2) z-0 x-3 x-7 x-8 x-9 x-10 (rec x-12))))-    (y x-5) (z z-1))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-0 (mul x-3 x-7 x-8 x-9 x-10 (rec x-12)))) (y z-0)-    (z x-6))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-0 (mul x-3 x-7 x-8 x-9))) (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (4 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (ind-zero-in (x-10 (exp h2-0 (mul x-3 x-7 x-8 x-9)))-    (z (exp h2-0 (mul x-3 x-7 x-8 x-9)))-    (z-0 (exp h2-0 (mul x-3 x-7 x-8 x-9 x-10 (rec x-12))))-    (x-6 (exp h2-0 (mul x-3 x-7 x-8 x-9 x-10 (rec x-12))))-    (x-5 (exp h2-0 (mul (rec x-2) z-0 x-3 x-7 x-8 x-9 x-10 (rec x-12))))-    (z-1-      (exp h2-0 (mul (rec x-2) z-0 x-3 x-7 x-8 x-9 x-10 (rec x-12)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-3 x-4 x-5 x-6 x-10)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul x-3 x-7 x-8 x-9 x-10 (rec x-12))) (3 0)-    (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1 x-11))-          (exp h2-0 (mul x-0 x-1 x-3 x-11))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv-       (enc-         (exp h2-0 (mul (rec x-2) z-0 x-3 x-7 x-8 x-9 x-10 (rec x-12)))-         a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-5)-          (exp h2-0-            (mul (rec x-2) z-0 x-3 x-5 x-7 x-8 x-9 x-10 (rec x-12)))-          (exp (gen) z-1) b-1 (pubk a-1))))-    ((recv-       (enc (exp h2-0 (mul x-3 x-7 x-8 x-9 x-10 (rec x-12))) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-0 (mul z-0 x-3 x-7 x-8 x-9 x-10 (rec x-12)))-          (exp (gen) x-6) b-2 (pubk a-2))))-    ((recv (enc (exp h2-0 (mul x-3 x-7 x-8 x-9)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-10) (exp h2-0 (mul x-3 x-7 x-8 x-9 x-10))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 28)-  (parent 10)-  (unrealized (1 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 name) (h2 h3 base)-    (x x-0 z z-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul x-0 (rec x-4) (rec x-5) x-7 x-9)))-    (h3 (exp h2 (mul x x-1 (rec x-2)))) (x x-2))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp (gen) (mul x-2 x-6 (rec x-8) x-9))) (y z-0) (z x-3))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul x-2 x-9)))-    (y x-6) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (ind-zero-in (x-6 (exp (gen) (mul x-2 x-9)))-    (z (exp (gen) (mul x-2 x-9)))-    (z-0 (exp (gen) (mul x-2 x-6 (rec x-8) x-9)))-    (x-3 (exp (gen) (mul x-2 x-6 (rec x-8) x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-1 x-2 x-3 x-6)-  (operation nonce-test-    (algebra-contracted-      (h2-0 (exp (gen) (mul (rec x-4) (rec x-5) x-9))))-    (exp (gen) (mul x-2 x-9)) (3 0) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul x-0 (rec x-4) (rec x-5) x-7 x-9))-          (exp (gen) (mul x-0 x-2 (rec x-4) (rec x-5) x-7 x-9))-          (exp h2 (mul x x-1 (rec x-2))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv (enc (exp (gen) (mul x-2 x-6 (rec x-8) x-9)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-0) (exp (gen) (mul z-0 x-2 x-6 (rec x-8) x-9))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((recv (enc (exp (gen) (mul x-2 x-9)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp (gen) (mul x-2 x-6 x-9)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 29)-  (parent 10)-  (unrealized (1 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 name) (h3 base)-    (x z x-0 x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b)-    (h2 (exp (gen) (mul (rec x) x-0 (rec x-1) x-3 x-6))) (h3 h3)-    (x x-1))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul (rec x-2) x-4 x-5)))-    (h3 (exp (gen) (mul x-3 x-6))) (x x-0))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp (gen) (mul x-0 x-5)))-    (y x-3) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))-  (ind-zero-in (x-3 (exp (gen) (mul x-0 x-5)))-    (z (exp (gen) (mul x-0 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-0 x-1 x-3)-  (operation nonce-test-    (algebra-contracted-      (h2 (exp (gen) (mul (rec x) x-0 (rec x-1) x-3 x-6))))-    (exp (gen) (mul x-3 x-6)) (1 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv-        (enc (exp (gen) (mul (rec x) x-0 (rec x-1) x-3 x-6))-          (exp (gen) (mul (rec x) x-0 x-3 x-6)) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul (rec x-2) x-4 x-5))-          (exp (gen) (mul x-0 (rec x-2) x-4 x-5))-          (exp (gen) (mul x-3 x-6)) b-0 (pubk a-0)))-      (send (enc (exp (gen) (mul x-0 x-3 x-6)) (pubk b-0))))-    ((recv (enc (exp (gen) (mul x-0 x-5)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-3) (exp (gen) (mul x-0 x-3 x-5)) (exp (gen) z)-          b-1 (pubk a-1)))))-  (label 30)-  (parent 11)-  (seen 30)-  (unrealized (0 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 x-3 (rec x-4)))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-0)-    (h3 (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4)))) (x x-2))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-2 x-5 (rec x-6)))) (x x-6))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-6)-  (operation nonce-test (added-strand init 3) (exp h2-0 x-2) (2 1)-    (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2 (mul x-0 x-3 (rec x-4))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-2) a-1 (pubk b-1)))-      (recv-        (enc h2-0 (exp h2-0 x-2)-          (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 x-3 (rec x-4))) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-6) (exp h2-0 (mul x-2 x-5 (rec x-6))) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul x-2 x-5)) (pubk b-2)))))-  (label 31)-  (parent 12)-  (unrealized (2 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 x-3 (rec x-4)))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-0 x-7))-    (h3 (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4)))) (x x-2))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-2 x-5)))-    (y x-6) (z z))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-6 (exp h2-0 (mul x-2 x-5)))-    (z (exp h2-0 (mul x-2 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-6)-  (operation nonce-test (added-strand resp 2) (exp h2-0 (mul x-2 x-7))-    (2 1) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2 (mul x-0 x-3 (rec x-4))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-2) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-0 x-7) (exp h2-0 (mul x-2 x-7))-          (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 x-3 (rec x-4))) (pubk b-1))))-    ((recv (enc (exp h2-0 (mul x-2 x-5)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul x-2 x-5 x-6)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 32)-  (parent 12)-  (unrealized (2 1) (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h2 h3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-0) x-1 x-2))) (x x-0))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-5))-    (h3 (exp h2 (mul (rec x-0) x-1 x-2 x-3 (rec x-4)))) (x x-4))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-1 x-4)-  (operation nonce-test (algebra-contracted (h2-0 (exp (gen) x-5)))-    (exp (gen) (mul x-4 x-5)) (2 1) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-0))-          (exp h2 (mul (rec x-0) x-1 x-2)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-1 x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-5) (exp (gen) (mul x-4 x-5))-          (exp h2 (mul (rec x-0) x-1 x-2 x-3 (rec x-4))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul (rec x-0) x-1 x-2 x-3)) (pubk b-1)))))-  (label 33)-  (parent 12)-  (unrealized (2 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 x-0)) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-1) z x-2 (rec x-3) x-5 x-6))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul x-2 (rec x-3) x-5 x-6))) (y z) (z x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-0)-    (h3 (exp h2 (mul x-2 (rec x-3) x-5 x-6 (rec x-7) (rec x-8))))-    (x x-8))-  (precedes ((0 0) (3 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 2) (2 0)))-  (ind-zero-in (z (exp h2 (mul x-2 (rec x-3) x-5 x-6)))-    (x-4 (exp h2 (mul x-2 (rec x-3) x-5 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-8)-  (operation nonce-test (added-strand init 3)-    (exp h2 (mul x-2 (rec x-3) x-5 x-6)) (2 0))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc (exp h2 x-0) (exp h2 (mul x-0 x-2)) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-3))-          (exp h2 (mul (rec x-1) z x-2 (rec x-3) x-5 x-6)) b-0-          (pubk a-0)))-      (send (enc (exp h2 (mul (rec x-1) z x-2 x-5 x-6)) (pubk b-0))))-    ((recv (enc (exp h2 (mul x-2 (rec x-3) x-5 x-6)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z) (exp h2 (mul z x-2 (rec x-3) x-5 x-6))-          (exp (gen) x-4) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-8) a-2 (pubk b-2)))-      (recv-        (enc h2-0 (exp h2-0 x-8)-          (exp h2 (mul x-2 (rec x-3) x-5 x-6 (rec x-7) (rec x-8))) b-2-          (pubk a-2)))-      (send-        (enc (exp h2 (mul x-2 (rec x-3) x-5 x-6 (rec x-7)))-          (pubk b-2)))))-  (label 34)-  (parent 13)-  (unrealized (0 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 name) (h2 h3 base)-    (x x-0 x-1 z z-0 x-2 y x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 (mul x-0 x-8))) (h3 h3)-    (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3-      (exp h2-        (mul (rec x-1) z-0 x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9)))-    (x y))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9))) (y z-0)-    (z x-3))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6)))) (y x-7) (z z))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (ind-zero-in (x-7 (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6))))-    (z (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6))))-    (z-0 (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9)))-    (x-3 (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-2 y x-3 x-7)-  (operation nonce-test (added-strand resp 2)-    (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9)) (2 0))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv-        (enc (exp h2 (mul x-0 x-8)) (exp h2 (mul x-0 x-2 x-8)) h3 b-          (pubk a))) (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) y) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x y))-          (exp h2-            (mul (rec x-1) z-0 x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9))-          b-0 (pubk a-0)))-      (send-        (enc (exp h2 (mul (rec x-1) z-0 x-2 x-4 x-5 (rec x-6) x-7 x-9))-          (pubk b-0))))-    ((recv-       (enc (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9)) a-1-         (pubk b-1)))-      (send-        (enc (exp (gen) z-0)-          (exp h2 (mul z-0 x-2 (rec y) x-4 x-5 (rec x-6) x-7 x-9))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((recv-       (enc (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6))) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) x-7)-          (exp h2 (mul x-2 (rec y) x-4 x-5 (rec x-6) x-7)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 35)-  (parent 13)-  (unrealized (0 1) (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 name) (h3 base)-    (x z x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b)-    (h2 (exp (gen) (mul x-0 x-0 (rec x-1) (rec x-2) (rec x-3) x-5 x-7)))-    (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp (gen) (mul x-0 x-4 (rec x-6) x-7))) (x x-0))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp (gen) (mul x-0 x-7)))-    (y x-4) (z z))-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))-  (ind-zero-in (x-4 (exp (gen) (mul x-0 x-7)))-    (z (exp (gen) (mul x-0 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-0 x-1 x-4)-  (operation nonce-test-    (algebra-contracted-      (h2 (exp (gen) (mul x-0 x-0 (rec x-1) (rec x-2) (rec x-3) x-7))))-    (exp (gen) (mul x-0 x-7)) (2 0))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv-        (enc-          (exp (gen)-            (mul x-0 x-0 (rec x-1) (rec x-2) (rec x-3) x-5 x-7))-          (exp (gen) (mul x-0 x-0 (rec x-2) (rec x-3) x-5 x-7)) h3 b-          (pubk a))) (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-0))-          (exp (gen) (mul x-0 x-4 (rec x-6) x-7)) b-0 (pubk a-0)))-      (send-        (enc (exp (gen) (mul x-0 x-0 x-4 (rec x-6) x-7)) (pubk b-0))))-    ((recv (enc (exp (gen) (mul x-0 x-7)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-4) (exp (gen) (mul x-0 x-4 x-7)) (exp (gen) z)-          b-1 (pubk a-1)))))-  (label 36)-  (parent 13)-  (seen 36)-  (unrealized (0 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 h2-4 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-3)-    (h3 (exp h2-2 (mul x-2 (rec x-3) x-7))) (x x-3))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-4)-    (h3 (exp h2-3 (mul x-3 x-8 (rec x-9)))) (x x-9))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 1))-    ((4 2) (3 1)) ((5 2) (4 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-3 x-4 x-5 x-6 x-7 x-9)-  (operation nonce-test (added-strand init 3) (exp h2-3 x-3) (4 1)-    (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-4) (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-7) (exp h2-1 (mul x-1 x-4 (rec x-7))) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-3) a-3 (pubk b-3)))-      (recv-        (enc h2-3 (exp h2-3 x-3) (exp h2-2 (mul x-2 (rec x-3) x-7)) b-3-          (pubk a-3))) (send (enc (exp h2-2 (mul x-2 x-7)) (pubk b-3))))-    ((send (enc (exp (gen) x-9) a-4 (pubk b-4)))-      (recv-        (enc h2-4 (exp h2-4 x-9) (exp h2-3 (mul x-3 x-8 (rec x-9))) b-4-          (pubk a-4)))-      (send (enc (exp h2-3 (mul x-3 x-8)) (pubk b-4)))))-  (label 37)-  (parent 15)-  (unrealized (1 1) (2 1) (3 1) (4 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-3 x-10))-    (h3 (exp h2-2 (mul x-2 (rec x-3) x-7))) (x x-3))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-3 (mul x-3 x-8)))-    (y x-9) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 0))-    ((4 2) (3 1)) ((5 1) (4 1)))-  (ind-zero-in (x-9 (exp h2-3 (mul x-3 x-8)))-    (z (exp h2-3 (mul x-3 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-7 x-9)-  (operation nonce-test (added-strand resp 2) (exp h2-3 (mul x-3 x-10))-    (4 1) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-4) (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-7) (exp h2-1 (mul x-1 x-4 (rec x-7))) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-3) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-3 x-10) (exp h2-3 (mul x-3 x-10))-          (exp h2-2 (mul x-2 (rec x-3) x-7)) b-3 (pubk a-3)))-      (send (enc (exp h2-2 (mul x-2 x-7)) (pubk b-3))))-    ((recv (enc (exp h2-3 (mul x-3 x-8)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-9) (exp h2-3 (mul x-3 x-8 x-9)) (exp (gen) z)-          b-4 (pubk a-4)))))-  (label 38)-  (parent 15)-  (unrealized (1 1) (2 1) (3 1) (4 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 (rec x-2) x-5))) (x x-2))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-8))-    (h3 (exp h2-2 (mul x-2 x-6 (rec x-7)))) (x x-7))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-5 x-7)-  (operation nonce-test (algebra-contracted (h2-3 (exp (gen) x-8)))-    (exp (gen) (mul x-7 x-8)) (4 1) (exp (gen) x-7))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-2) (exp h2-1 (mul x-1 (rec x-2) x-5)) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-5)) (pubk b-2))))-    ((send (enc (exp (gen) x-7) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-8) (exp (gen) (mul x-7 x-8))-          (exp h2-2 (mul x-2 x-6 (rec x-7))) b-3 (pubk a-3)))-      (send (enc (exp h2-2 (mul x-2 x-6)) (pubk b-3)))))-  (label 39)-  (parent 15)-  (unrealized (1 1) (2 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-4 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-3) x-5))) (x x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 x-2))-    (h3 (exp h2-1 (mul x-1 x-3 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-2 (mul x-6 x-8))) (y z)-    (z x-7))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul x-6 x-8 x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 1)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 2) (4 0)))-  (ind-zero-in (z (exp h2-2 (mul x-6 x-8)))-    (x-7 (exp h2-2 (mul x-6 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-7 x-10)-  (operation nonce-test (added-strand init 3) (exp h2-2 (mul x-6 x-8))-    (4 0) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-5) (exp h2 (mul x x-4 (rec x-5))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-3) (exp h2-0 (mul x-0 (rec x-3) x-5)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 x-2) (exp h2-2 (mul x-2 x-6))-          (exp h2-1 (mul x-1 x-3 (rec x-6))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-3)) (pubk b-2))))-    ((recv (enc (exp h2-2 (mul x-6 x-8)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z) (exp h2-2 (mul z x-6 x-8)) (exp (gen) x-7)-          b-3 (pubk a-3))))-    ((send (enc (exp (gen) x-10) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 x-10)-          (exp h2-2 (mul x-6 x-8 x-9 (rec x-10))) b-4 (pubk a-4)))-      (send (enc (exp h2-2 (mul x-6 x-8 x-9)) (pubk b-4)))))-  (label 40)-  (parent 16)-  (unrealized (1 1) (2 1) (3 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-4 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-3) x-5))) (x x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 (mul x-2 x-11)))-    (h3 (exp h2-1 (mul x-1 x-3 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-2 (mul x-6 x-8 x-9 x-10 (rec x-12)))) (y z-0) (z x-7))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-2 (mul x-6 x-8 x-9)))-    (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 0)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 1) (4 0)))-  (ind-zero-in (x-10 (exp h2-2 (mul x-6 x-8 x-9)))-    (z (exp h2-2 (mul x-6 x-8 x-9)))-    (z-0 (exp h2-2 (mul x-6 x-8 x-9 x-10 (rec x-12))))-    (x-7 (exp h2-2 (mul x-6 x-8 x-9 x-10 (rec x-12)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-7 x-10)-  (operation nonce-test (added-strand resp 2)-    (exp h2-2 (mul x-6 x-8 x-9 x-10 (rec x-12))) (4 0) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-5) (exp h2 (mul x x-4 (rec x-5))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-3) (exp h2-0 (mul x-0 (rec x-3) x-5)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 (mul x-2 x-11)) (exp h2-2 (mul x-2 x-6 x-11))-          (exp h2-1 (mul x-1 x-3 (rec x-6))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-3)) (pubk b-2))))-    ((recv-       (enc (exp h2-2 (mul x-6 x-8 x-9 x-10 (rec x-12))) a-3-         (pubk b-3)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-2 (mul z-0 x-6 x-8 x-9 x-10 (rec x-12)))-          (exp (gen) x-7) b-3 (pubk a-3))))-    ((recv (enc (exp h2-2 (mul x-6 x-8 x-9)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-10) (exp h2-2 (mul x-6 x-8 x-9 x-10))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 41)-  (parent 16)-  (unrealized (1 1) (2 1) (3 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2)-    (h2 (exp (gen) (mul (rec x-6) x-8 x-9)))-    (h3 (exp h2-1 (mul x-1 (rec x-2) x-5))) (x x-2))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp (gen) (mul x-2 x-9)))-    (y x-7) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-7 (exp (gen) (mul x-2 x-9)))-    (z (exp (gen) (mul x-2 x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-7)-  (operation nonce-test-    (algebra-contracted (h2-2 (exp (gen) (mul (rec x-6) x-9))))-    (exp (gen) (mul x-2 x-9)) (4 0) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) (mul (rec x-6) x-8 x-9))-          (exp (gen) (mul x-2 (rec x-6) x-8 x-9))-          (exp h2-1 (mul x-1 (rec x-2) x-5)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-5)) (pubk b-2))))-    ((recv (enc (exp (gen) (mul x-2 x-9)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-7) (exp (gen) (mul x-2 x-7 x-9)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 42)-  (parent 16)-  (unrealized (1 1) (2 1) (3 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-1 (mul (rec x-2) x-5 x-6))) (x x-2))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test (added-strand init 3)-    (exp h2-1 (mul (rec x-2) x-5 x-6)) (3 1))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-2))-          (exp h2-1 (mul (rec x-2) x-5 x-6)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-5 x-6)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-8)-          (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 (rec x-8))) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul (rec x-2) x-5 x-6 x-7)) (pubk b-3)))))-  (label 43)-  (parent 17)-  (unrealized (1 1) (2 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-9))-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 x-8 (rec x-10)))) (x x-2))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-1 (mul (rec x-2) x-5 x-6 x-7))) (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 0))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-8 (exp h2-1 (mul (rec x-2) x-5 x-6 x-7)))-    (z (exp h2-1 (mul (rec x-2) x-5 x-6 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test (added-strand resp 2)-    (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 x-8 (rec x-10))) (3 1))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-9) (exp h2-1 (mul x-5 x-9))-          (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-2))-          (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 x-8 (rec x-10))) b-2-          (pubk a-2)))-      (send-        (enc (exp h2-1 (mul x-5 x-6 x-7 x-8 (rec x-10))) (pubk b-2))))-    ((recv (enc (exp h2-1 (mul (rec x-2) x-5 x-6 x-7)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 x-8))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 44)-  (parent 17)-  (unrealized (1 1) (2 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul (rec x-1) (rec x-4) x-5 x-5 x-7)))-    (h3 (exp h2-0 (mul x-0 (rec x-1) x-3))) (x x-1))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-6))-    (h3 (exp (gen) (mul x-5 x-7))) (x x-5))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-3 x-5)-  (operation nonce-test-    (algebra-contracted-      (h2-1 (exp (gen) (mul (rec x-1) (rec x-4) x-5 x-5 x-7))))-    (exp (gen) (mul x-5 x-7)) (3 1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul (rec x-1) (rec x-4) x-5 x-5 x-7))-          (exp (gen) (mul (rec x-4) x-5 x-5 x-7))-          (exp h2-0 (mul x-0 (rec x-1) x-3)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-6) (exp (gen) (mul x-5 x-6))-          (exp (gen) (mul x-5 x-7)) b-2 (pubk a-2)))-      (send (enc (exp (gen) (mul x-5 x-5 x-7)) (pubk b-2)))))-  (label 45)-  (parent 17)-  (unrealized (1 1) (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 z x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-6))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-6 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-1))-    (h3 (exp h2-0 (mul x-0 (rec x-5) x-7))) (x x-5))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-1 (mul x-2 x-5)))-    (y x-8) (z x-4))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-2 x-3 (rec z) x-5))) (x z))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul z x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 0) (5 1)) ((4 2) (3 0))-    ((5 2) (4 1)))-  (ind-zero-in (x-8 (exp h2-1 (mul x-2 x-5)))-    (x-4 (exp h2-1 (mul x-2 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-4 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand init 3) (exp h2-2 z) (4 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-6) a (pubk b)))-      (recv (enc h2 (exp h2 x-6) h3 b (pubk a)))-      (send (enc (exp h3 x-6) (pubk b))))-    ((send (enc (exp (gen) x-7) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-7) (exp h2 (mul x x-6 (rec x-7))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-1) (exp h2-1 (mul x-1 x-5))-          (exp h2-0 (mul x-0 (rec x-5) x-7)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-7)) (pubk b-1))))-    ((recv (enc (exp h2-1 (mul x-2 x-5)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul x-2 x-5 x-8))-          (exp (gen) x-4) b-2 (pubk a-2))))-    ((send (enc (exp (gen) z) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 z) (exp h2-1 (mul x-2 x-3 (rec z) x-5)) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul x-2 x-3 x-5)) (pubk b-3))))-    ((send (enc (exp (gen) x-10) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 x-10) (exp h2-2 (mul z x-9 (rec x-10))) b-4-          (pubk a-4))) (send (enc (exp h2-2 (mul z x-9)) (pubk b-4)))))-  (label 46)-  (parent 18)-  (unrealized (1 1) (2 1) (4 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-6))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-6 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-1))-    (h3 (exp h2-0 (mul x-0 (rec x-5) x-7))) (x x-5))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-1 (mul x-2 x-5)))-    (y x-8) (z x-4))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-2 x-11))-    (h3 (exp h2-1 (mul x-2 x-3 (rec z-0) x-5))) (x z-0))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-2 (mul z-0 x-9)))-    (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 0) (5 0)) ((4 2) (3 0))-    ((5 1) (4 1)))-  (ind-zero-in (x-10 (exp h2-2 (mul z-0 x-9)))-    (z (exp h2-2 (mul z-0 x-9))) (x-8 (exp h2-1 (mul x-2 x-5)))-    (x-4 (exp h2-1 (mul x-2 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand resp 2) (exp h2-2 (mul z-0 x-11))-    (4 1) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-6) a (pubk b)))-      (recv (enc h2 (exp h2 x-6) h3 b (pubk a)))-      (send (enc (exp h3 x-6) (pubk b))))-    ((send (enc (exp (gen) x-7) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-7) (exp h2 (mul x x-6 (rec x-7))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-1) (exp h2-1 (mul x-1 x-5))-          (exp h2-0 (mul x-0 (rec x-5) x-7)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-7)) (pubk b-1))))-    ((recv (enc (exp h2-1 (mul x-2 x-5)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul x-2 x-5 x-8))-          (exp (gen) x-4) b-2 (pubk a-2))))-    ((send (enc (exp (gen) z-0) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-2 x-11) (exp h2-2 (mul z-0 x-11))-          (exp h2-1 (mul x-2 x-3 (rec z-0) x-5)) b-3 (pubk a-3)))-      (send (enc (exp h2-1 (mul x-2 x-3 x-5)) (pubk b-3))))-    ((recv (enc (exp h2-2 (mul z-0 x-9)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-10) (exp h2-2 (mul z-0 x-9 x-10))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 47)-  (parent 18)-  (unrealized (1 1) (2 1) (4 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-2) x-3))) (x x-2))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-1))-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-4)))) (x x-4))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-1 (mul x-4 x-6))) (y z)-    (z x-5))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-9))-    (h3 (exp h2-1 (mul x-4 x-6 x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2-1 (mul x-4 x-6)))-    (x-5 (exp h2-1 (mul x-4 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test (algebra-contracted (h2-2 (exp (gen) x-9)))-    (exp (gen) (mul x-8 x-9)) (4 1) (exp (gen) x-8))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-2) (exp h2 (mul x (rec x-2) x-3)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-1) (exp h2-1 (mul x-1 x-4))-          (exp h2-0 (mul x-0 x-2 (rec x-4))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1))))-    ((recv (enc (exp h2-1 (mul x-4 x-6)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z) (exp h2-1 (mul z x-4 x-6)) (exp (gen) x-5)-          b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-9) (exp (gen) (mul x-8 x-9))-          (exp h2-1 (mul x-4 x-6 x-7 (rec x-8))) b-3 (pubk a-3)))-      (send (enc (exp h2-1 (mul x-4 x-6 x-7)) (pubk b-3)))))-  (label 48)-  (parent 18)-  (unrealized (1 1) (2 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 b-3 a-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 (mul x-1 x-2)))-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-1 (mul (rec x-3) z x-4 x-9 x-10))) (y x-7) (z z-0))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-1 (mul x-4 x-9 x-10)))-    (y z) (z x-8))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-2)-    (h3 (exp h2-1 (mul x-4 x-9 x-10 x-11 (rec x-12)))) (x x-12))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (5 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 1) (3 0)) ((5 2) (4 0)))-  (ind-zero-in (z (exp h2-1 (mul x-4 x-9 x-10)))-    (x-8 (exp h2-1 (mul x-4 x-9 x-10)))-    (x-7 (exp h2-1 (mul (rec x-3) z x-4 x-9 x-10)))-    (z-0 (exp h2-1 (mul (rec x-3) z x-4 x-9 x-10))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 x-7 x-8 x-12)-  (operation nonce-test (added-strand init 3)-    (exp h2-1 (mul x-4 x-9 x-10)) (4 0) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 (mul x-1 x-2)) (exp h2-1 (mul x-1 x-2 x-4))-          (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((recv-       (enc (exp h2-1 (mul (rec x-3) z x-4 x-9 x-10)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-7)-          (exp h2-1 (mul (rec x-3) z x-4 x-7 x-9 x-10)) (exp (gen) z-0)-          b-2 (pubk a-2))))-    ((recv (enc (exp h2-1 (mul x-4 x-9 x-10)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z) (exp h2-1 (mul z x-4 x-9 x-10))-          (exp (gen) x-8) b-3 (pubk a-3))))-    ((send (enc (exp (gen) x-12) a-4 (pubk b-4)))-      (recv-        (enc h2-2 (exp h2-2 x-12)-          (exp h2-1 (mul x-4 x-9 x-10 x-11 (rec x-12))) b-4 (pubk a-4)))-      (send (enc (exp h2-1 (mul x-4 x-9 x-10 x-11)) (pubk b-4)))))-  (label 49)-  (parent 19)-  (unrealized (1 1) (2 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 b-3 a-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 z z-0 z-1 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      x-13 x-14 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 (mul x-1 x-2 x-13)))-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1-      (exp h2-1 (mul (rec x-3) z-0 x-4 x-9 x-10 x-11 x-12 (rec x-14))))-    (y x-7) (z z-1))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-1 (mul x-4 x-9 x-10 x-11 x-12 (rec x-14)))) (y z-0)-    (z x-8))-  (defstrand resp 2 (b b-4) (a a-4)-    (h1 (exp h2-1 (mul x-4 x-9 x-10 x-11))) (y x-12) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (5 0))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 1) (3 0)) ((5 1) (4 0)))-  (ind-zero-in (x-12 (exp h2-1 (mul x-4 x-9 x-10 x-11)))-    (z (exp h2-1 (mul x-4 x-9 x-10 x-11)))-    (z-0 (exp h2-1 (mul x-4 x-9 x-10 x-11 x-12 (rec x-14))))-    (x-8 (exp h2-1 (mul x-4 x-9 x-10 x-11 x-12 (rec x-14))))-    (x-7-      (exp h2-1 (mul (rec x-3) z-0 x-4 x-9 x-10 x-11 x-12 (rec x-14))))-    (z-1-      (exp h2-1 (mul (rec x-3) z-0 x-4 x-9 x-10 x-11 x-12 (rec x-14)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-4 x-5 x-6 x-7 x-8 x-12)-  (operation nonce-test (added-strand resp 2)-    (exp h2-1 (mul x-4 x-9 x-10 x-11 x-12 (rec x-14))) (4 0)-    (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 (mul x-1 x-2 x-13))-          (exp h2-1 (mul x-1 x-2 x-4 x-13))-          (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((recv-       (enc-         (exp h2-1-           (mul (rec x-3) z-0 x-4 x-9 x-10 x-11 x-12 (rec x-14))) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) x-7)-          (exp h2-1-            (mul (rec x-3) z-0 x-4 x-7 x-9 x-10 x-11 x-12 (rec x-14)))-          (exp (gen) z-1) b-2 (pubk a-2))))-    ((recv-       (enc (exp h2-1 (mul x-4 x-9 x-10 x-11 x-12 (rec x-14))) a-3-         (pubk b-3)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-1 (mul z-0 x-4 x-9 x-10 x-11 x-12 (rec x-14)))-          (exp (gen) x-8) b-3 (pubk a-3))))-    ((recv (enc (exp h2-1 (mul x-4 x-9 x-10 x-11)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-12) (exp h2-1 (mul x-4 x-9 x-10 x-11 x-12))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 50)-  (parent 19)-  (unrealized (1 1) (2 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 z z-0 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-2) x-3))) (x x-2))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul x-1 (rec x-6) (rec x-7) x-9 x-11)))-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-4)))) (x x-4))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp (gen) (mul x-4 x-8 (rec x-10) x-11))) (y z-0) (z x-5))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp (gen) (mul x-4 x-11)))-    (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 0))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 1) (3 0)))-  (ind-zero-in (x-8 (exp (gen) (mul x-4 x-11)))-    (z (exp (gen) (mul x-4 x-11)))-    (z-0 (exp (gen) (mul x-4 x-8 (rec x-10) x-11)))-    (x-5 (exp (gen) (mul x-4 x-8 (rec x-10) x-11))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test-    (algebra-contracted-      (h2-1 (exp (gen) (mul (rec x-6) (rec x-7) x-11))))-    (exp (gen) (mul x-4 x-11)) (4 0) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-2) (exp h2 (mul x (rec x-2) x-3)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul x-1 (rec x-6) (rec x-7) x-9 x-11))-          (exp (gen) (mul x-1 x-4 (rec x-6) (rec x-7) x-9 x-11))-          (exp h2-0 (mul x-0 x-2 (rec x-4))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1))))-    ((recv-       (enc (exp (gen) (mul x-4 x-8 (rec x-10) x-11)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp (gen) (mul z-0 x-4 x-8 (rec x-10) x-11)) (exp (gen) x-5)-          b-2 (pubk a-2))))-    ((recv (enc (exp (gen) (mul x-4 x-11)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp (gen) (mul x-4 x-8 x-11))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 51)-  (parent 19)-  (unrealized (1 1) (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul (rec x-0) x-1 (rec x-3) x-5 x-8)))-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul (rec x-4) x-6 x-7)))-    (h3 (exp (gen) (mul x-5 x-8))) (x x-1))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul x-1 x-7)))-    (y x-5) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-5 (exp (gen) (mul x-1 x-7)))-    (z (exp (gen) (mul x-1 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-5)-  (operation nonce-test-    (algebra-contracted-      (h2-0 (exp (gen) (mul (rec x-0) x-1 (rec x-3) x-5 x-8))))-    (exp (gen) (mul x-5 x-8)) (2 1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul (rec x-0) x-1 (rec x-3) x-5 x-8))-          (exp (gen) (mul (rec x-0) x-1 x-5 x-8))-          (exp h2 (mul x x-2 (rec x-3))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul (rec x-4) x-6 x-7))-          (exp (gen) (mul x-1 (rec x-4) x-6 x-7))-          (exp (gen) (mul x-5 x-8)) b-1 (pubk a-1)))-      (send (enc (exp (gen) (mul x-1 x-5 x-8)) (pubk b-1))))-    ((recv (enc (exp (gen) (mul x-1 x-7)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-5) (exp (gen) (mul x-1 x-5 x-7)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 52)-  (parent 20)-  (seen 52)-  (unrealized (1 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-4) x-5))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2-0 (mul x-1 x-4 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-1 x-2 (rec x-3) x-4 (rec x-6)))) (x x-3))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-3 x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (added-strand init 3) (exp h2-1 x-3) (3 1)-    (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-4) (exp h2 (mul x (rec x-4) x-5)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-6) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-6))-          (exp h2-0 (mul x-1 x-4 (rec x-6))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-1 x-4)) (pubk b-1))))-    ((send (enc (exp (gen) x-3) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-3)-          (exp h2-0 (mul x-1 x-2 (rec x-3) x-4 (rec x-6))) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-4 (rec x-6))) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-8) (exp h2-1 (mul x-3 x-7 (rec x-8))) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul x-3 x-7)) (pubk b-3)))))-  (label 53)-  (parent 21)-  (unrealized (1 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-4) x-5))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2-0 (mul x-1 x-4 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-1 x-9))-    (h3 (exp h2-0 (mul x-1 x-2 (rec x-3) x-4 (rec x-6)))) (x x-3))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-1 (mul x-3 x-7)))-    (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-8 (exp h2-1 (mul x-3 x-7)))-    (z (exp h2-1 (mul x-3 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (added-strand resp 2) (exp h2-1 (mul x-3 x-9))-    (3 1) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-4) (exp h2 (mul x (rec x-4) x-5)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-6) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-6))-          (exp h2-0 (mul x-1 x-4 (rec x-6))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-1 x-4)) (pubk b-1))))-    ((send (enc (exp (gen) x-3) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-1 x-9) (exp h2-1 (mul x-3 x-9))-          (exp h2-0 (mul x-1 x-2 (rec x-3) x-4 (rec x-6))) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-4 (rec x-6))) (pubk b-2))))-    ((recv (enc (exp h2-1 (mul x-3 x-7)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul x-3 x-7 x-8)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 54)-  (parent 21)-  (unrealized (1 1) (3 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2-0 (mul (rec x-1) x-3 x-4))) (x x-1))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-7))-    (h3 (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 (rec x-6)))) (x x-6))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-3 x-6)-  (operation nonce-test (algebra-contracted (h2-1 (exp (gen) x-7)))-    (exp (gen) (mul x-6 x-7)) (3 1) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x x-2 (rec x-3))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-1))-          (exp h2-0 (mul (rec x-1) x-3 x-4)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-3 x-4)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-7) (exp (gen) (mul x-6 x-7))-          (exp h2-0 (mul (rec x-1) x-3 x-4 x-5 (rec x-6))) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul (rec x-1) x-3 x-4 x-5)) (pubk b-2)))))-  (label 55)-  (parent 21)-  (unrealized (1 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-1))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2-0 (mul (rec x-2) z x-3 (rec x-5) x-7 x-8))) (x x-5))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-0 (mul x-3 (rec x-5) x-7 x-8))) (y z) (z x-6))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-1)-    (h3 (exp h2-0 (mul x-3 (rec x-5) x-7 x-8 (rec x-9) (rec x-10))))-    (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2-0 (mul x-3 (rec x-5) x-7 x-8)))-    (x-6 (exp h2-0 (mul x-3 (rec x-5) x-7 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-10)-  (operation nonce-test (added-strand init 3)-    (exp h2-0 (mul x-3 (rec x-5) x-7 x-8)) (3 0))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-1) (exp h2-0 (mul x-1 x-3))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-5))-          (exp h2-0 (mul (rec x-2) z x-3 (rec x-5) x-7 x-8)) b-1-          (pubk a-1)))-      (send (enc (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8)) (pubk b-1))))-    ((recv (enc (exp h2-0 (mul x-3 (rec x-5) x-7 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-3 (rec x-5) x-7 x-8))-          (exp (gen) x-6) b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-10) a-3 (pubk b-3)))-      (recv-        (enc h2-1 (exp h2-1 x-10)-          (exp h2-0 (mul x-3 (rec x-5) x-7 x-8 (rec x-9) (rec x-10)))-          b-3 (pubk a-3)))-      (send-        (enc (exp h2-0 (mul x-3 (rec x-5) x-7 x-8 (rec x-9)))-          (pubk b-3)))))-  (label 56)-  (parent 22)-  (unrealized (1 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 y x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-1 x-10)))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3-      (exp h2-0-        (mul (rec x-2) z-0 x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11)))-    (x y))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11))) (y z-0)-    (z x-5))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8)))) (y x-9) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (4 0)) ((1 2) (0 1)) ((2 0) (4 0))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 1) (3 0)))-  (ind-zero-in (x-9 (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8))))-    (z (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8))))-    (z-0 (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11)))-    (x-5 (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 y x-5 x-9)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11)) (3 0))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-1 x-10)) (exp h2-0 (mul x-1 x-3 x-10))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) y) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 y))-          (exp h2-0-            (mul (rec x-2) z-0 x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11))-          b-1 (pubk a-1)))-      (send-        (enc-          (exp h2-0 (mul (rec x-2) z-0 x-3 x-6 x-7 (rec x-8) x-9 x-11))-          (pubk b-1))))-    ((recv-       (enc (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11)) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-0 (mul z-0 x-3 (rec y) x-6 x-7 (rec x-8) x-9 x-11))-          (exp (gen) x-5) b-2 (pubk a-2))))-    ((recv-       (enc (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8))) a-3-         (pubk b-3)))-      (send-        (enc (exp (gen) x-9)-          (exp h2-0 (mul x-3 (rec y) x-6 x-7 (rec x-8) x-9))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 57)-  (parent 22)-  (unrealized (1 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul x-1 (rec x-4) (rec x-5) x-7 x-9)))-    (h3 (exp h2 (mul x x-2 (rec x-3)))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp (gen) (mul x-3 x-6 (rec x-8) x-9))) (x x-1))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul x-3 x-9)))-    (y x-6) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-6 (exp (gen) (mul x-3 x-9)))-    (z (exp (gen) (mul x-3 x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-6)-  (operation nonce-test-    (algebra-contracted-      (h2-0 (exp (gen) (mul x-1 (rec x-4) (rec x-5) x-9))))-    (exp (gen) (mul x-3 x-9)) (3 0))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul x-1 (rec x-4) (rec x-5) x-7 x-9))-          (exp (gen) (mul x-1 x-3 (rec x-4) (rec x-5) x-7 x-9))-          (exp h2 (mul x x-2 (rec x-3))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-2)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-1))-          (exp (gen) (mul x-3 x-6 (rec x-8) x-9)) b-1 (pubk a-1)))-      (send-        (enc (exp (gen) (mul x-1 x-3 x-6 (rec x-8) x-9)) (pubk b-1))))-    ((recv (enc (exp (gen) (mul x-3 x-9)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp (gen) (mul x-3 x-6 x-9)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 58)-  (parent 22)-  (unrealized (1 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h2 h3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-0))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) (mul x-2 x-5)))-    (h3 (exp h2 (mul x x-0 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-1))-    (h3 (exp (gen) (mul x-3 x-4))) (x x-4))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-4 x-5)-  (operation nonce-test-    (algebra-contracted (x-6 x-5)-      (x-7 (mul (rec x-2) x-3 x-4 x-4 (rec x-5) (rec x-5))) (x-8 x-4)-      (x-9 x-3) (x-10 x-2)) (exp (gen) (mul x-2 x-5)) (1 1))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc h2 (exp h2 x-0) h3 b (pubk a)))-      (send (enc (exp h3 x-0) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul x-2 x-5)) (exp (gen) (mul x-2 x-5 x-5))-          (exp h2 (mul x x-0 (rec x-5))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-0)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-4))-          (exp (gen) (mul x-3 x-4)) b-1 (pubk a-1)))-      (send (enc (exp (gen) (mul x-3 x-4 x-4)) (pubk b-1)))))-  (label 59)-  (parent 23)-  (seen 59)-  (unrealized (1 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 z x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-6)))-    (y x-4) (z x-7))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-1 x-2 x-6 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-3 (rec z) x-8))) (x z))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul z x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 1)) ((3 2) (2 0)) ((4 0) (5 1)) ((4 2) (3 1))-    ((5 2) (4 1)))-  (ind-zero-in (x-4 (exp h2-0 (mul x-1 x-6)))-    (x-7 (exp h2-0 (mul x-1 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-4 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand init 3) (exp h2-2 z) (4 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-6))-          (exp h2 (mul x x-5 (rec x-6))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-6)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-4) (exp h2-0 (mul x-1 x-4 x-6))-          (exp (gen) x-7) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-8) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-8) (exp h2-0 (mul x-1 x-2 x-6 (rec x-8)))-          b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-6)) (pubk b-2))))-    ((send (enc (exp (gen) z) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 z) (exp h2-1 (mul x-3 (rec z) x-8)) b-3-          (pubk a-3))) (send (enc (exp h2-1 (mul x-3 x-8)) (pubk b-3))))-    ((send (enc (exp (gen) x-10) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 x-10) (exp h2-2 (mul z x-9 (rec x-10))) b-4-          (pubk a-4))) (send (enc (exp h2-2 (mul z x-9)) (pubk b-4)))))-  (label 60)-  (parent 24)-  (unrealized (1 1) (3 1) (4 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-6)))-    (y x-4) (z x-7))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-1 x-2 x-6 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-2 x-11))-    (h3 (exp h2-1 (mul x-3 (rec z-0) x-8))) (x z-0))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-2 (mul z-0 x-9)))-    (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 1)) ((3 2) (2 0)) ((4 0) (5 0)) ((4 2) (3 1))-    ((5 1) (4 1)))-  (ind-zero-in (x-10 (exp h2-2 (mul z-0 x-9)))-    (z (exp h2-2 (mul z-0 x-9))) (x-4 (exp h2-0 (mul x-1 x-6)))-    (x-7 (exp h2-0 (mul x-1 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand resp 2) (exp h2-2 (mul z-0 x-11))-    (4 1) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-6))-          (exp h2 (mul x x-5 (rec x-6))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-6)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-4) (exp h2-0 (mul x-1 x-4 x-6))-          (exp (gen) x-7) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-8) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-8) (exp h2-0 (mul x-1 x-2 x-6 (rec x-8)))-          b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-6)) (pubk b-2))))-    ((send (enc (exp (gen) z-0) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-2 x-11) (exp h2-2 (mul z-0 x-11))-          (exp h2-1 (mul x-3 (rec z-0) x-8)) b-3 (pubk a-3)))-      (send (enc (exp h2-1 (mul x-3 x-8)) (pubk b-3))))-    ((recv (enc (exp h2-2 (mul z-0 x-9)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-10) (exp h2-2 (mul z-0 x-9 x-10))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 61)-  (parent 24)-  (unrealized (1 1) (3 1) (4 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x (rec x-4) x-5))) (x x-4))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-4)))-    (y x-6) (z x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-1 x-2 (rec z) x-4))) (x z))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-9))-    (h3 (exp h2-1 (mul z x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 1)) ((3 2) (2 0)) ((4 2) (3 1)))-  (ind-zero-in (x-6 (exp h2-0 (mul x-1 x-4)))-    (x-3 (exp h2-0 (mul x-1 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (algebra-contracted (h2-2 (exp (gen) x-9)))-    (exp (gen) (mul x-8 x-9)) (4 1) (exp (gen) x-8))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-4))-          (exp h2 (mul x (rec x-4) x-5)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-4)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul x-1 x-4 x-6))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 z) (exp h2-0 (mul x-1 x-2 (rec z) x-4)) b-2-          (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-9) (exp (gen) (mul x-8 x-9))-          (exp h2-1 (mul z x-7 (rec x-8))) b-3 (pubk a-3)))-      (send (enc (exp h2-1 (mul z x-7)) (pubk b-3)))))-  (label 62)-  (parent 24)-  (unrealized (1 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 b-3 a-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 x-7 x-8 z-1 x-9 z-2 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x x-4 (rec x-5)))) (x x-5))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-5)))-    (y z-0) (z x-6))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-1 x-3))-    (h3 (exp h2-0 (mul x-1 x-2 x-5 (rec x-7)))) (x x-7))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-1 (mul x-7 z-1))) (y z)-    (z x-8))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-2)-    (h3 (exp h2-1 (mul x-7 z-1 x-9 (rec z-2)))) (x z-2))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (5 1)) ((3 2) (2 0)) ((4 1) (3 1)) ((5 2) (4 0)))-  (ind-zero-in (z (exp h2-1 (mul x-7 z-1)))-    (x-8 (exp h2-1 (mul x-7 z-1))) (z-0 (exp h2-0 (mul x-1 x-5)))-    (x-6 (exp h2-0 (mul x-1 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 x-7 x-8 z-2)-  (operation nonce-test (added-strand init 3) (exp h2-1 (mul x-7 z-1))-    (4 0) (exp (gen) x-7))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-5))-          (exp h2 (mul x x-4 (rec x-5))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-5)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-0) (exp h2-0 (mul x-1 z-0 x-5))-          (exp (gen) x-6) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-1 x-3) (exp h2-1 (mul x-3 x-7))-          (exp h2-0 (mul x-1 x-2 x-5 (rec x-7))) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-5)) (pubk b-2))))-    ((recv (enc (exp h2-1 (mul x-7 z-1)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z) (exp h2-1 (mul z x-7 z-1)) (exp (gen) x-8)-          b-3 (pubk a-3))))-    ((send (enc (exp (gen) z-2) a-4 (pubk b-4)))-      (recv-        (enc h2-2 (exp h2-2 z-2) (exp h2-1 (mul x-7 z-1 x-9 (rec z-2)))-          b-4 (pubk a-4)))-      (send (enc (exp h2-1 (mul x-7 z-1 x-9)) (pubk b-4)))))-  (label 63)-  (parent 25)-  (unrealized (1 1) (3 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 b-3 a-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 z z-0 z-1 x-4 x-5 x-6 x-7 x-8 z-2 x-9 z-3 z-4-      x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x x-4 (rec x-5)))) (x x-5))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-5)))-    (y z-1) (z x-6))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-1 (mul x-3 z-4)))-    (h3 (exp h2-0 (mul x-1 x-2 x-5 (rec x-7)))) (x x-7))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-1 (mul x-7 z-2 x-9 z-3 (rec x-10)))) (y z-0) (z x-8))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-1 (mul x-7 z-2 x-9)))-    (y z-3) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (5 0)) ((3 2) (2 0)) ((4 1) (3 1)) ((5 1) (4 0)))-  (ind-zero-in (z-3 (exp h2-1 (mul x-7 z-2 x-9)))-    (z (exp h2-1 (mul x-7 z-2 x-9)))-    (z-0 (exp h2-1 (mul x-7 z-2 x-9 z-3 (rec x-10))))-    (x-8 (exp h2-1 (mul x-7 z-2 x-9 z-3 (rec x-10))))-    (z-1 (exp h2-0 (mul x-1 x-5))) (x-6 (exp h2-0 (mul x-1 x-5))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-4 x-5 x-6 x-7 x-8 z-3)-  (operation nonce-test (added-strand resp 2)-    (exp h2-1 (mul x-7 z-2 x-9 z-3 (rec x-10))) (4 0) (exp (gen) x-7))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-5))-          (exp h2 (mul x x-4 (rec x-5))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-5)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-1) (exp h2-0 (mul x-1 z-1 x-5))-          (exp (gen) x-6) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-1 (mul x-3 z-4)) (exp h2-1 (mul x-3 x-7 z-4))-          (exp h2-0 (mul x-1 x-2 x-5 (rec x-7))) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-5)) (pubk b-2))))-    ((recv-       (enc (exp h2-1 (mul x-7 z-2 x-9 z-3 (rec x-10))) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-1 (mul z-0 x-7 z-2 x-9 z-3 (rec x-10)))-          (exp (gen) x-8) b-3 (pubk a-3))))-    ((recv (enc (exp h2-1 (mul x-7 z-2 x-9)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) z-3) (exp h2-1 (mul x-7 z-2 x-9 z-3))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 64)-  (parent 25)-  (unrealized (1 1) (3 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 z-1 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x (rec x-4) x-5))) (x x-4))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-1 x-4)))-    (y x-6) (z x-3))-  (defstrand init 3 (a a-2) (b b-2)-    (h2 (exp (gen) (mul (rec x-7) x-9 z-1)))-    (h3 (exp h2-0 (mul x-1 x-2 (rec z-0) x-4))) (x z-0))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp (gen) (mul z-0 z-1)))-    (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 0)) ((3 2) (2 0)) ((4 1) (3 1)))-  (ind-zero-in (x-8 (exp (gen) (mul z-0 z-1)))-    (z (exp (gen) (mul z-0 z-1))) (x-6 (exp h2-0 (mul x-1 x-4)))-    (x-3 (exp h2-0 (mul x-1 x-4))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test-    (algebra-contracted (h2-1 (exp (gen) (mul (rec x-7) z-1))))-    (exp (gen) (mul z-0 z-1)) (4 0) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-4))-          (exp h2 (mul x (rec x-4) x-5)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-1 x-4)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-6) (exp h2-0 (mul x-1 x-4 x-6))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z-0) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) (mul (rec x-7) x-9 z-1))-          (exp (gen) (mul z-0 (rec x-7) x-9 z-1))-          (exp h2-0 (mul x-1 x-2 (rec z-0) x-4)) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-1 x-2 x-4)) (pubk b-2))))-    ((recv (enc (exp (gen) (mul z-0 z-1)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp (gen) (mul z-0 x-8 z-1)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 65)-  (parent 25)-  (unrealized (1 1) (3 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 x-0))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp h2-0 (mul x-3 x-6)))-    (y x-5) (z x-2))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-0 (mul (rec z) x-3 x-6 x-7))) (x z))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-1)-    (h3 (exp h2-0 (mul (rec z) x-3 x-6 x-7 x-8 (rec x-9)))) (x x-9))-  (precedes ((0 0) (1 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 1)) ((3 2) (2 0)) ((4 2) (3 1)))-  (ind-zero-in (x-5 (exp h2-0 (mul x-3 x-6)))-    (x-2 (exp h2-0 (mul x-3 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-9)-  (operation nonce-test (added-strand init 3)-    (exp h2-0 (mul (rec z) x-3 x-6 x-7)) (3 1))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 x-0) (exp h2-0 (mul x-0 x-3))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv (enc (exp h2-0 (mul x-3 x-6)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-5) (exp h2-0 (mul x-3 x-5 x-6))-          (exp (gen) x-2) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 z))-          (exp h2-0 (mul (rec z) x-3 x-6 x-7)) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-3 x-6 x-7)) (pubk b-2))))-    ((send (enc (exp (gen) x-9) a-3 (pubk b-3)))-      (recv-        (enc h2-1 (exp h2-1 x-9)-          (exp h2-0 (mul (rec z) x-3 x-6 x-7 x-8 (rec x-9))) b-3-          (pubk a-3)))-      (send (enc (exp h2-0 (mul (rec z) x-3 x-6 x-7 x-8)) (pubk b-3)))))-  (label 66)-  (parent 26)-  (unrealized (1 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 z z-0 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-10)))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul x-3 x-6 x-7 x-8 x-9 (rec x-11) (rec x-12))))-    (y x-5) (z x-2))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8 x-9 (rec x-11))))-    (x z-0))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8))) (y x-9) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (4 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 0)) ((3 2) (2 0)) ((4 1) (3 1)))-  (ind-zero-in (x-9 (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8)))-    (z (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8)))-    (x-5 (exp h2-0 (mul x-3 x-6 x-7 x-8 x-9 (rec x-11) (rec x-12))))-    (x-2 (exp h2-0 (mul x-3 x-6 x-7 x-8 x-9 (rec x-11) (rec x-12)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-2 x-3 x-4 x-5 x-9)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8 x-9 (rec x-11))) (3 1))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-10)) (exp h2-0 (mul x-0 x-3 x-10))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv-       (enc (exp h2-0 (mul x-3 x-6 x-7 x-8 x-9 (rec x-11) (rec x-12)))-         a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-5)-          (exp h2-0 (mul x-3 x-5 x-6 x-7 x-8 x-9 (rec x-11) (rec x-12)))-          (exp (gen) x-2) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z-0) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 z-0))-          (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8 x-9 (rec x-11))) b-2-          (pubk a-2)))-      (send-        (enc (exp h2-0 (mul x-3 x-6 x-7 x-8 x-9 (rec x-11)))-          (pubk b-2))))-    ((recv-       (enc (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-9)-          (exp h2-0 (mul (rec z-0) x-3 x-6 x-7 x-8 x-9)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 67)-  (parent 26)-  (unrealized (1 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 name) (h2 h3 base)-    (x x-0 z x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul x-0 (rec x-2) (rec x-4) (rec x-5) x-6 x-6 x-8)))-    (h3 (exp h2 (mul x x-1 (rec x-2)))) (x x-2))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp (gen) (mul (rec x-5) x-6 x-6 x-8))) (y z) (z x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-7))-    (h3 (exp (gen) (mul x-6 x-8))) (x x-6))-  (precedes ((0 0) (1 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 2) (2 0)))-  (ind-zero-in (z (exp (gen) (mul (rec x-5) x-6 x-6 x-8)))-    (x-3 (exp (gen) (mul (rec x-5) x-6 x-6 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 x-2 x-3 x-6)-  (operation nonce-test-    (algebra-contracted-      (h2-0-        (exp (gen) (mul (rec x-2) (rec x-4) (rec x-5) x-6 x-6 x-8))))-    (exp (gen) (mul x-6 x-8)) (3 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc-          (exp (gen)-            (mul x-0 (rec x-2) (rec x-4) (rec x-5) x-6 x-6 x-8))-          (exp (gen) (mul x-0 (rec x-4) (rec x-5) x-6 x-6 x-8))-          (exp h2 (mul x x-1 (rec x-2))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((recv (enc (exp (gen) (mul (rec x-5) x-6 x-6 x-8)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z) (exp (gen) (mul z (rec x-5) x-6 x-6 x-8))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-7) (exp (gen) (mul x-6 x-7))-          (exp (gen) (mul x-6 x-8)) b-2 (pubk a-2)))-      (send (enc (exp (gen) (mul x-6 x-6 x-8)) (pubk b-2)))))-  (label 68)-  (parent 26)-  (unrealized (1 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 z z-0 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-1)))-    (h3 (exp h2 (mul x x-7 (rec x-8)))) (x x-8))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10))) (y x-6) (z x-9))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-3 x-4 x-8)))-    (y x-10) (z z-0))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-1)-    (h3 (exp h2-0 (mul x-3 x-4 x-5 (rec z) x-8))) (x z))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-2)-    (h3 (exp h2-1 (mul z x-11 (rec x-12)))) (x x-12))-  (precedes ((0 0) (1 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 0) (5 1)) ((4 2) (3 0)) ((5 2) (4 1)))-  (ind-zero-in (x-10 (exp h2-0 (mul x-3 x-4 x-8)))-    (z-0 (exp h2-0 (mul x-3 x-4 x-8)))-    (x-6 (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10)))-    (x-9 (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-6 x-7 x-8 x-9 x-10 x-12)-  (operation nonce-test (added-strand init 3) (exp h2-1 z) (4 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-8) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1)) (exp h2-0 (mul x-0 x-1 x-8))-          (exp h2 (mul x x-7 (rec x-8))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((recv-       (enc (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-6)-          (exp h2-0 (mul (rec x-2) x-3 x-4 x-6 x-8 x-10))-          (exp (gen) x-9) b-1 (pubk a-1))))-    ((recv (enc (exp h2-0 (mul x-3 x-4 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-10) (exp h2-0 (mul x-3 x-4 x-8 x-10))-          (exp (gen) z-0) b-2 (pubk a-2))))-    ((send (enc (exp (gen) z) a-3 (pubk b-3)))-      (recv-        (enc h2-1 (exp h2-1 z) (exp h2-0 (mul x-3 x-4 x-5 (rec z) x-8))-          b-3 (pubk a-3)))-      (send (enc (exp h2-0 (mul x-3 x-4 x-5 x-8)) (pubk b-3))))-    ((send (enc (exp (gen) x-12) a-4 (pubk b-4)))-      (recv-        (enc h2-2 (exp h2-2 x-12) (exp h2-1 (mul z x-11 (rec x-12))) b-4-          (pubk a-4))) (send (enc (exp h2-1 (mul z x-11)) (pubk b-4)))))-  (label 69)-  (parent 27)-  (unrealized (1 1) (4 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 z z-0 z-1 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      x-13 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-1)))-    (h3 (exp h2 (mul x x-7 (rec x-8)))) (x x-8))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10))) (y x-6) (z x-9))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-3 x-4 x-8)))-    (y x-10) (z z-1))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-1 x-13))-    (h3 (exp h2-0 (mul x-3 x-4 x-5 (rec z-0) x-8))) (x z-0))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-1 (mul z-0 x-11)))-    (y x-12) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 0) (5 0)) ((4 2) (3 0)) ((5 1) (4 1)))-  (ind-zero-in (x-12 (exp h2-1 (mul z-0 x-11)))-    (z (exp h2-1 (mul z-0 x-11))) (x-10 (exp h2-0 (mul x-3 x-4 x-8)))-    (z-1 (exp h2-0 (mul x-3 x-4 x-8)))-    (x-6 (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10)))-    (x-9 (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-6 x-7 x-8 x-9 x-10 x-12)-  (operation nonce-test (added-strand resp 2) (exp h2-1 (mul z-0 x-13))-    (4 1) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-8) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1)) (exp h2-0 (mul x-0 x-1 x-8))-          (exp h2 (mul x x-7 (rec x-8))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((recv-       (enc (exp h2-0 (mul (rec x-2) x-3 x-4 x-8 x-10)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-6)-          (exp h2-0 (mul (rec x-2) x-3 x-4 x-6 x-8 x-10))-          (exp (gen) x-9) b-1 (pubk a-1))))-    ((recv (enc (exp h2-0 (mul x-3 x-4 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-10) (exp h2-0 (mul x-3 x-4 x-8 x-10))-          (exp (gen) z-1) b-2 (pubk a-2))))-    ((send (enc (exp (gen) z-0) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-1 x-13) (exp h2-1 (mul z-0 x-13))-          (exp h2-0 (mul x-3 x-4 x-5 (rec z-0) x-8)) b-3 (pubk a-3)))-      (send (enc (exp h2-0 (mul x-3 x-4 x-5 x-8)) (pubk b-3))))-    ((recv (enc (exp h2-1 (mul z-0 x-11)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-12) (exp h2-1 (mul z-0 x-11 x-12))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 70)-  (parent 27)-  (unrealized (1 1) (4 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 a-3 b-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-1)))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8))) (y x-5) (z z-0))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-3 x-7 x-8)))-    (y z) (z x-6))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-11))-    (h3 (exp h2-0 (mul x-3 x-7 x-8 x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2-0 (mul x-3 x-7 x-8)))-    (x-6 (exp h2-0 (mul x-3 x-7 x-8)))-    (x-5 (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8)))-    (z-0 (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-10)-  (operation nonce-test (algebra-contracted (h2-1 (exp (gen) x-11)))-    (exp (gen) (mul x-10 x-11)) (4 1) (exp (gen) x-10))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1)) (exp h2-0 (mul x-0 x-1 x-3))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv-       (enc (exp h2-0 (mul (rec x-2) z x-3 x-7 x-8)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-5)-          (exp h2-0 (mul (rec x-2) z x-3 x-5 x-7 x-8)) (exp (gen) z-0)-          b-1 (pubk a-1))))-    ((recv (enc (exp h2-0 (mul x-3 x-7 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-3 x-7 x-8))-          (exp (gen) x-6) b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-10) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-11) (exp (gen) (mul x-10 x-11))-          (exp h2-0 (mul x-3 x-7 x-8 x-9 (rec x-10))) b-3 (pubk a-3)))-      (send (enc (exp h2-0 (mul x-3 x-7 x-8 x-9)) (pubk b-3)))))-  (label 71)-  (parent 27)-  (unrealized (1 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 b-3 a-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 z z-0 z-1 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      x-13 x-14 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp h2-0 (mul x-0 x-1 x-3)))-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2-0 (mul (rec x-2) (rec x-4) z x-6 x-8 x-10 x-11 x-12)))-    (y z-1) (z x-7))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-0 (mul (rec x-4) z x-6 x-10 x-11 x-12))) (y x-8)-    (z z-0))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-0 (mul x-6 x-10 x-11 x-12))) (y z) (z x-9))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-1)-    (h3 (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 (rec x-14)))) (x x-14))-  (precedes ((0 0) (1 1)) ((1 0) (5 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)) ((5 2) (4 0)))-  (ind-zero-in (z (exp h2-0 (mul x-6 x-10 x-11 x-12)))-    (x-9 (exp h2-0 (mul x-6 x-10 x-11 x-12)))-    (x-8 (exp h2-0 (mul (rec x-4) z x-6 x-10 x-11 x-12)))-    (z-0 (exp h2-0 (mul (rec x-4) z x-6 x-10 x-11 x-12)))-    (z-1 (exp h2-0 (mul (rec x-2) (rec x-4) z x-6 x-8 x-10 x-11 x-12)))-    (x-7 (exp h2-0 (mul (rec x-2) (rec x-4) z x-6 x-8 x-10 x-11 x-12))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-5 x-6 x-7 x-8 x-9 x-14)-  (operation nonce-test (added-strand init 3)-    (exp h2-0 (mul x-6 x-10 x-11 x-12)) (4 0) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1 x-3))-          (exp h2-0 (mul x-0 x-1 x-3 x-6))-          (exp h2 (mul x x-5 (rec x-6))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv-       (enc-         (exp h2-0 (mul (rec x-2) (rec x-4) z x-6 x-8 x-10 x-11 x-12))-         a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-1)-          (exp h2-0-            (mul (rec x-2) (rec x-4) z z-1 x-6 x-8 x-10 x-11 x-12))-          (exp (gen) x-7) b-1 (pubk a-1))))-    ((recv-       (enc (exp h2-0 (mul (rec x-4) z x-6 x-10 x-11 x-12)) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) x-8)-          (exp h2-0 (mul (rec x-4) z x-6 x-8 x-10 x-11 x-12))-          (exp (gen) z-0) b-2 (pubk a-2))))-    ((recv (enc (exp h2-0 (mul x-6 x-10 x-11 x-12)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-6 x-10 x-11 x-12))-          (exp (gen) x-9) b-3 (pubk a-3))))-    ((send (enc (exp (gen) x-14) a-4 (pubk b-4)))-      (recv-        (enc h2-1 (exp h2-1 x-14)-          (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 (rec x-14))) b-4-          (pubk a-4)))-      (send (enc (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13)) (pubk b-4)))))-  (label 72)-  (parent 28)-  (unrealized (1 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 b-3 a-3 b-4 a-4 name)-    (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 z z-0 z-1 z-2 x-5 x-6 x-7 x-8 x-9 x-10 x-11-      x-12 x-13 x-14 x-15 x-16 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp h2-0 (mul x-0 x-1 x-3 x-15)))-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1-      (exp h2-0-        (mul (rec x-2) (rec x-4) z-0 x-6 x-8 x-10 x-11 x-12 x-13 x-14-          (rec x-16)))) (y z-2) (z x-7))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1-      (exp h2-0-        (mul (rec x-4) z-0 x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))))-    (y x-8) (z z-1))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))))-    (y z-0) (z x-9))-  (defstrand resp 2 (b b-4) (a a-4)-    (h1 (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13))) (y x-14) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (5 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)) ((5 1) (4 0)))-  (ind-zero-in (x-14 (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13)))-    (z (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13)))-    (z-0 (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))))-    (x-9 (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))))-    (x-8-      (exp h2-0-        (mul (rec x-4) z-0 x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))))-    (z-1-      (exp h2-0-        (mul (rec x-4) z-0 x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))))-    (z-2-      (exp h2-0-        (mul (rec x-2) (rec x-4) z-0 x-6 x-8 x-10 x-11 x-12 x-13 x-14-          (rec x-16))))-    (x-7-      (exp h2-0-        (mul (rec x-2) (rec x-4) z-0 x-6 x-8 x-10 x-11 x-12 x-13 x-14-          (rec x-16)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 z-2 x-5 x-6 x-7 x-8 x-9 x-14)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))) (4 0)-    (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc (exp h2-0 (mul x-0 x-1 x-3 x-15))-          (exp h2-0 (mul x-0 x-1 x-3 x-6 x-15))-          (exp h2 (mul x x-5 (rec x-6))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((recv-       (enc-         (exp h2-0-           (mul (rec x-2) (rec x-4) z-0 x-6 x-8 x-10 x-11 x-12 x-13 x-14-             (rec x-16))) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-2)-          (exp h2-0-            (mul (rec x-2) (rec x-4) z-0 z-2 x-6 x-8 x-10 x-11 x-12 x-13-              x-14 (rec x-16))) (exp (gen) x-7) b-1 (pubk a-1))))-    ((recv-       (enc-         (exp h2-0-           (mul (rec x-4) z-0 x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16)))-         a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-8)-          (exp h2-0-            (mul (rec x-4) z-0 x-6 x-8 x-10 x-11 x-12 x-13 x-14-              (rec x-16))) (exp (gen) z-1) b-2 (pubk a-2))))-    ((recv-       (enc (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16))) a-3-         (pubk b-3)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-0 (mul z-0 x-6 x-10 x-11 x-12 x-13 x-14 (rec x-16)))-          (exp (gen) x-9) b-3 (pubk a-3))))-    ((recv-       (enc (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-14)-          (exp h2-0 (mul x-6 x-10 x-11 x-12 x-13 x-14)) (exp (gen) z)-          b-4 (pubk a-4)))))-  (label 73)-  (parent 28)-  (unrealized (1 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 b-3 a-3 name) (h2 h3 base)-    (x x-0 x-1 x-2 z z-0 z-1 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      x-13 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0)-    (h2-      (exp (gen) (mul x-0 x-1 (rec x-7) (rec x-8) (rec x-9) x-11 x-13)))-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp (gen) (mul (rec x-2) z-0 x-3 x-10 (rec x-12) x-13)))-    (y x-5) (z z-1))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp (gen) (mul x-3 x-10 (rec x-12) x-13))) (y z-0) (z x-6))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp (gen) (mul x-3 x-13)))-    (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (4 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (ind-zero-in (x-10 (exp (gen) (mul x-3 x-13)))-    (z (exp (gen) (mul x-3 x-13)))-    (z-0 (exp (gen) (mul x-3 x-10 (rec x-12) x-13)))-    (x-6 (exp (gen) (mul x-3 x-10 (rec x-12) x-13)))-    (x-5 (exp (gen) (mul (rec x-2) z-0 x-3 x-10 (rec x-12) x-13)))-    (z-1 (exp (gen) (mul (rec x-2) z-0 x-3 x-10 (rec x-12) x-13))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-3 x-4 x-5 x-6 x-10)-  (operation nonce-test-    (algebra-contracted-      (h2-0 (exp (gen) (mul (rec x-7) (rec x-8) (rec x-9) x-13))))-    (exp (gen) (mul x-3 x-13)) (4 0) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc-          (exp (gen)-            (mul x-0 x-1 (rec x-7) (rec x-8) (rec x-9) x-11 x-13))-          (exp (gen)-            (mul x-0 x-1 x-3 (rec x-7) (rec x-8) (rec x-9) x-11 x-13))-          (exp h2 (mul x (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((recv-       (enc (exp (gen) (mul (rec x-2) z-0 x-3 x-10 (rec x-12) x-13)) a-1-         (pubk b-1)))-      (send-        (enc (exp (gen) x-5)-          (exp (gen) (mul (rec x-2) z-0 x-3 x-5 x-10 (rec x-12) x-13))-          (exp (gen) z-1) b-1 (pubk a-1))))-    ((recv-       (enc (exp (gen) (mul x-3 x-10 (rec x-12) x-13)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp (gen) (mul z-0 x-3 x-10 (rec x-12) x-13)) (exp (gen) x-6)-          b-2 (pubk a-2))))-    ((recv (enc (exp (gen) (mul x-3 x-13)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-10) (exp (gen) (mul x-3 x-10 x-13))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 74)-  (parent 28)-  (unrealized (1 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 name) (h3 base)-    (x x-0 z z-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b)-    (h2 (exp (gen) (mul (rec x) (rec x-1) x-2 x-6 x-10))) (h3 h3)-    (x x-1))-  (defstrand init 3 (a a-0) (b b-0)-    (h2 (exp (gen) (mul x-0 (rec x-4) (rec x-5) x-7 x-9)))-    (h3 (exp (gen) (mul x-6 x-10))) (x x-2))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp (gen) (mul x-2 x-6 (rec x-8) x-9))) (y z-0) (z x-3))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul x-2 x-9)))-    (y x-6) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (ind-zero-in (x-6 (exp (gen) (mul x-2 x-9)))-    (z (exp (gen) (mul x-2 x-9)))-    (z-0 (exp (gen) (mul x-2 x-6 (rec x-8) x-9)))-    (x-3 (exp (gen) (mul x-2 x-6 (rec x-8) x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-1 x-2 x-3 x-6)-  (operation nonce-test-    (algebra-contracted-      (h2 (exp (gen) (mul (rec x) (rec x-1) x-2 x-6 x-10))))-    (exp (gen) (mul x-6 x-10)) (1 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv-        (enc (exp (gen) (mul (rec x) (rec x-1) x-2 x-6 x-10))-          (exp (gen) (mul (rec x) x-2 x-6 x-10)) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) (mul x-0 (rec x-4) (rec x-5) x-7 x-9))-          (exp (gen) (mul x-0 x-2 (rec x-4) (rec x-5) x-7 x-9))-          (exp (gen) (mul x-6 x-10)) b-0 (pubk a-0)))-      (send (enc (exp (gen) (mul x-2 x-6 x-10)) (pubk b-0))))-    ((recv (enc (exp (gen) (mul x-2 x-6 (rec x-8) x-9)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-0) (exp (gen) (mul z-0 x-2 x-6 (rec x-8) x-9))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((recv (enc (exp (gen) (mul x-2 x-9)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp (gen) (mul x-2 x-6 x-9)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 75)-  (parent 29)-  (seen 75)-  (unrealized (0 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 (rec x-4) x-5))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-0)-    (h3 (exp h2 (mul x-0 x-1 (rec x-4) x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-1)-    (h3 (exp h2-0 (mul x-2 (rec x-3) x-6))) (x x-3))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-3 x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (added-strand init 3) (exp h2-1 x-3) (3 1)-    (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2 (mul x-0 (rec x-4) x-5)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-6) a-1 (pubk b-1)))-      (recv-        (enc h2-0 (exp h2-0 x-6)-          (exp h2 (mul x-0 x-1 (rec x-4) x-5 (rec x-6))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 (rec x-4) x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-3) a-2 (pubk b-2)))-      (recv-        (enc h2-1 (exp h2-1 x-3) (exp h2-0 (mul x-2 (rec x-3) x-6)) b-2-          (pubk a-2))) (send (enc (exp h2-0 (mul x-2 x-6)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-8) (exp h2-1 (mul x-3 x-7 (rec x-8))) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul x-3 x-7)) (pubk b-3)))))-  (label 76)-  (parent 31)-  (unrealized (2 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 (rec x-4) x-5))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-0)-    (h3 (exp h2 (mul x-0 x-1 (rec x-4) x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-1 x-9))-    (h3 (exp h2-0 (mul x-2 (rec x-3) x-6))) (x x-3))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-1 (mul x-3 x-7)))-    (y x-8) (z z))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-8 (exp h2-1 (mul x-3 x-7)))-    (z (exp h2-1 (mul x-3 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-8)-  (operation nonce-test (added-strand resp 2) (exp h2-1 (mul x-3 x-9))-    (3 1) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2 (mul x-0 (rec x-4) x-5)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-6) a-1 (pubk b-1)))-      (recv-        (enc h2-0 (exp h2-0 x-6)-          (exp h2 (mul x-0 x-1 (rec x-4) x-5 (rec x-6))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 (rec x-4) x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-3) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-1 x-9) (exp h2-1 (mul x-3 x-9))-          (exp h2-0 (mul x-2 (rec x-3) x-6)) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-2 x-6)) (pubk b-2))))-    ((recv (enc (exp h2-1 (mul x-3 x-7)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp h2-1 (mul x-3 x-7 x-8)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 77)-  (parent 31)-  (unrealized (2 1) (3 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 x-3 (rec x-4)))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-0)-    (h3 (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4)))) (x x-2))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-7))-    (h3 (exp h2-0 (mul x-2 x-5 (rec x-6)))) (x x-6))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-6)-  (operation nonce-test (algebra-contracted (h2-1 (exp (gen) x-7)))-    (exp (gen) (mul x-6 x-7)) (3 1) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2 (mul x-0 x-3 (rec x-4))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-2) a-1 (pubk b-1)))-      (recv-        (enc h2-0 (exp h2-0 x-2)-          (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 x-3 (rec x-4))) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-7) (exp (gen) (mul x-6 x-7))-          (exp h2-0 (mul x-2 x-5 (rec x-6))) b-2 (pubk a-2)))-      (send (enc (exp h2-0 (mul x-2 x-5)) (pubk b-2)))))-  (label 78)-  (parent 31)-  (unrealized (2 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-0 x-2))-    (h3 (exp h2 (mul x-0 x-1 (rec x-3) x-4 (rec x-5)))) (x x-5))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-0 (mul x-5 x-7))) (y z)-    (z x-6))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-1)-    (h3 (exp h2-0 (mul x-5 x-7 x-8 (rec x-9)))) (x x-9))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2-0 (mul x-5 x-7)))-    (x-6 (exp h2-0 (mul x-5 x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-9)-  (operation nonce-test (added-strand init 3) (exp h2-0 (mul x-5 x-7))-    (3 0) (exp (gen) x-5))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-3))-          (exp h2 (mul x-0 (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-0 x-2) (exp h2-0 (mul x-2 x-5))-          (exp h2 (mul x-0 x-1 (rec x-3) x-4 (rec x-5))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 (rec x-3) x-4)) (pubk b-1))))-    ((recv (enc (exp h2-0 (mul x-5 x-7)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z) (exp h2-0 (mul z x-5 x-7)) (exp (gen) x-6)-          b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-9) a-3 (pubk b-3)))-      (recv-        (enc h2-1 (exp h2-1 x-9) (exp h2-0 (mul x-5 x-7 x-8 (rec x-9)))-          b-3 (pubk a-3)))-      (send (enc (exp h2-0 (mul x-5 x-7 x-8)) (pubk b-3)))))-  (label 79)-  (parent 32)-  (unrealized (2 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-0 (mul x-2 x-10)))-    (h3 (exp h2 (mul x-0 x-1 (rec x-3) x-4 (rec x-5)))) (x x-5))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2-0 (mul x-5 x-7 x-8 x-9 (rec x-11)))) (y z-0) (z x-6))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-0 (mul x-5 x-7 x-8)))-    (y x-9) (z z))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 0))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 1) (3 0)))-  (ind-zero-in (x-9 (exp h2-0 (mul x-5 x-7 x-8)))-    (z (exp h2-0 (mul x-5 x-7 x-8)))-    (z-0 (exp h2-0 (mul x-5 x-7 x-8 x-9 (rec x-11))))-    (x-6 (exp h2-0 (mul x-5 x-7 x-8 x-9 (rec x-11)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-9)-  (operation nonce-test (added-strand resp 2)-    (exp h2-0 (mul x-5 x-7 x-8 x-9 (rec x-11))) (3 0) (exp (gen) x-5))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-3))-          (exp h2 (mul x-0 (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-0 (mul x-2 x-10)) (exp h2-0 (mul x-2 x-5 x-10))-          (exp h2 (mul x-0 x-1 (rec x-3) x-4 (rec x-5))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 (rec x-3) x-4)) (pubk b-1))))-    ((recv-       (enc (exp h2-0 (mul x-5 x-7 x-8 x-9 (rec x-11))) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-0 (mul z-0 x-5 x-7 x-8 x-9 (rec x-11)))-          (exp (gen) x-6) b-2 (pubk a-2))))-    ((recv (enc (exp h2-0 (mul x-5 x-7 x-8)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-9) (exp h2-0 (mul x-5 x-7 x-8 x-9))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 80)-  (parent 32)-  (unrealized (2 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-3))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-0 x-3 (rec x-4)))) (x x-4))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul (rec x-5) x-7 x-8)))-    (h3 (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4)))) (x x-2))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul x-2 x-8)))-    (y x-6) (z z))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in (x-6 (exp (gen) (mul x-2 x-8)))-    (z (exp (gen) (mul x-2 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-6)-  (operation nonce-test-    (algebra-contracted (h2-0 (exp (gen) (mul (rec x-5) x-8))))-    (exp (gen) (mul x-2 x-8)) (3 0) (exp (gen) x-2))-  (traces-    ((send (enc (exp (gen) x-3) a (pubk b)))-      (recv (enc h2 (exp h2 x-3) h3 b (pubk a)))-      (send (enc (exp h3 x-3) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2 (mul x-0 x-3 (rec x-4))) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-0 x-3)) (pubk b-0))))-    ((send (enc (exp (gen) x-2) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul (rec x-5) x-7 x-8))-          (exp (gen) (mul x-2 (rec x-5) x-7 x-8))-          (exp h2 (mul x-0 x-1 (rec x-2) x-3 (rec x-4))) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-0 x-1 x-3 (rec x-4))) (pubk b-1))))-    ((recv (enc (exp (gen) (mul x-2 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-6) (exp (gen) (mul x-2 x-6 x-8)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 81)-  (parent 32)-  (unrealized (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul x-2 (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2 (mul (rec x-1) x-2 (rec x-3) x-4 x-5))) (x x-1))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-0)-    (h3-      (exp h2-        (mul (rec x-1) x-2 (rec x-3) x-4 x-5 (rec x-6) (rec x-7))))-    (x x-7))-  (precedes ((0 0) (3 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-3 x-7)-  (operation nonce-test (added-strand init 3)-    (exp h2 (mul (rec x-1) x-2 (rec x-3) x-4 x-5)) (2 1))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc h2 (exp h2 x-2) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-3))-          (exp h2 (mul x-2 (rec x-3) x-4)) b-0 (pubk a-0)))-      (send (enc (exp h2 (mul x-2 x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-1))-          (exp h2 (mul (rec x-1) x-2 (rec x-3) x-4 x-5)) b-1-          (pubk a-1)))-      (send (enc (exp h2 (mul x-2 (rec x-3) x-4 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc h2-0 (exp h2-0 x-7)-          (exp h2-            (mul (rec x-1) x-2 (rec x-3) x-4 x-5 (rec x-6) (rec x-7)))-          b-2 (pubk a-2)))-      (send-        (enc (exp h2 (mul (rec x-1) x-2 (rec x-3) x-4 x-5 (rec x-6)))-          (pubk b-2)))))-  (label 82)-  (parent 33)-  (unrealized (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 name) (h2 h3 base)-    (x x-0 z x-1 y x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 x-7)) (h3 h3) (x y))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul y (rec x-2) x-3 x-4 (rec x-5) x-6 x-8 (rec x-9))))-    (x x-2))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-0))-    (h3 (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5) x-6 x-8)))-    (x x-1))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5)))) (y x-6)-    (z z))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 0) (3 0))-    ((2 2) (1 1)) ((3 1) (2 1)))-  (ind-zero-in-    (x-6 (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5))))-    (z (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-1 y x-2 x-6)-  (operation nonce-test (added-strand resp 2)-    (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5) x-6 x-8))-    (2 1))-  (traces-    ((send (enc (exp (gen) y) a (pubk b)))-      (recv (enc (exp h2 x-7) (exp h2 (mul y x-7)) h3 b (pubk a)))-      (send (enc (exp h3 y) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-2))-          (exp h2 (mul y (rec x-2) x-3 x-4 (rec x-5) x-6 x-8 (rec x-9)))-          b-0 (pubk a-0)))-      (send-        (enc (exp h2 (mul y x-3 x-4 (rec x-5) x-6 x-8 (rec x-9)))-          (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul x-0 x-1))-          (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5) x-6 x-8))-          b-1 (pubk a-1)))-      (send-        (enc (exp h2 (mul y (rec x-2) x-3 x-4 (rec x-5) x-6 x-8))-          (pubk b-1))))-    ((recv-       (enc (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5))) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) x-6)-          (exp h2 (mul (rec x-1) y (rec x-2) x-3 x-4 (rec x-5) x-6))-          (exp (gen) z) b-2 (pubk a-2)))))-  (label 83)-  (parent 33)-  (unrealized (0 1) (3 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 name) (h3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 expn))-  (defstrand init 3 (a a) (b b)-    (h2 (exp (gen) (mul x-0 (rec x-1) (rec x-2) (rec x-3) x-4 x-4 x-6)))-    (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp (gen) (mul (rec x-3) x-4 x-4 x-6))) (x x-0))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) x-5))-    (h3 (exp (gen) (mul x-4 x-6))) (x x-4))-  (precedes ((0 0) (2 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 2) (1 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-0 x-1 x-4)-  (operation nonce-test-    (algebra-contracted-      (h2-        (exp (gen)-          (mul x-0 (rec x-1) (rec x-2) (rec x-3) x-4 x-4 x-6))))-    (exp (gen) (mul x-4 x-6)) (2 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv-        (enc-          (exp (gen)-            (mul x-0 (rec x-1) (rec x-2) (rec x-3) x-4 x-4 x-6))-          (exp (gen) (mul x-0 (rec x-2) (rec x-3) x-4 x-4 x-6)) h3 b-          (pubk a))) (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-0))-          (exp (gen) (mul (rec x-3) x-4 x-4 x-6)) b-0 (pubk a-0)))-      (send-        (enc (exp (gen) (mul x-0 (rec x-3) x-4 x-4 x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) x-5) (exp (gen) (mul x-4 x-5))-          (exp (gen) (mul x-4 x-6)) b-1 (pubk a-1)))-      (send (enc (exp (gen) (mul x-4 x-4 x-6)) (pubk b-1)))))-  (label 84)-  (parent 33)-  (seen 84)-  (unrealized (0 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 z x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 x-0)) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-1) x-2 x-3 (rec x-6) x-7 x-8))) (x x-6))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul x-2 x-3 (rec x-6) x-7))) (y x-8) (z x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-0)-    (h3 (exp h2 (mul x-2 x-3 (rec x-4) (rec z) (rec x-6) x-7))) (x z))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-1)-    (h3 (exp h2-0 (mul z x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (3 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 1)) ((3 2) (2 0)) ((4 2) (3 1)))-  (ind-zero-in (x-8 (exp h2 (mul x-2 x-3 (rec x-6) x-7)))-    (x-5 (exp h2 (mul x-2 x-3 (rec x-6) x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand init 3) (exp h2-0 z) (3 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc (exp h2 x-0) (exp h2 (mul x-0 x-7)) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-6))-          (exp h2 (mul (rec x-1) x-2 x-3 (rec x-6) x-7 x-8)) b-0-          (pubk a-0)))-      (send (enc (exp h2 (mul (rec x-1) x-2 x-3 x-7 x-8)) (pubk b-0))))-    ((recv (enc (exp h2 (mul x-2 x-3 (rec x-6) x-7)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-8) (exp h2 (mul x-2 x-3 (rec x-6) x-7 x-8))-          (exp (gen) x-5) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z) a-2 (pubk b-2)))-      (recv-        (enc h2-0 (exp h2-0 z)-          (exp h2 (mul x-2 x-3 (rec x-4) (rec z) (rec x-6) x-7)) b-2-          (pubk a-2)))-      (send-        (enc (exp h2 (mul x-2 x-3 (rec x-4) (rec x-6) x-7))-          (pubk b-2))))-    ((send (enc (exp (gen) x-10) a-3 (pubk b-3)))-      (recv-        (enc h2-1 (exp h2-1 x-10) (exp h2-0 (mul z x-9 (rec x-10))) b-3-          (pubk a-3))) (send (enc (exp h2-0 (mul z x-9)) (pubk b-3)))))-  (label 85)-  (parent 34)-  (unrealized (0 1) (3 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 z z-0 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 x-0)) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-1) x-2 x-3 (rec x-6) x-7 x-8))) (x x-6))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul x-2 x-3 (rec x-6) x-7))) (y x-8) (z x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-0 x-11))-    (h3 (exp h2 (mul x-2 x-3 (rec x-4) (rec z-0) (rec x-6) x-7)))-    (x z-0))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-0 (mul z-0 x-9)))-    (y x-10) (z z))-  (precedes ((0 0) (3 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 0) (4 0)) ((3 2) (2 0)) ((4 1) (3 1)))-  (ind-zero-in (x-10 (exp h2-0 (mul z-0 x-9)))-    (z (exp h2-0 (mul z-0 x-9)))-    (x-8 (exp h2 (mul x-2 x-3 (rec x-6) x-7)))-    (x-5 (exp h2 (mul x-2 x-3 (rec x-6) x-7))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand resp 2) (exp h2-0 (mul z-0 x-11))-    (3 1) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc (exp h2 x-0) (exp h2 (mul x-0 x-7)) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-6))-          (exp h2 (mul (rec x-1) x-2 x-3 (rec x-6) x-7 x-8)) b-0-          (pubk a-0)))-      (send (enc (exp h2 (mul (rec x-1) x-2 x-3 x-7 x-8)) (pubk b-0))))-    ((recv (enc (exp h2 (mul x-2 x-3 (rec x-6) x-7)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-8) (exp h2 (mul x-2 x-3 (rec x-6) x-7 x-8))-          (exp (gen) x-5) b-1 (pubk a-1))))-    ((send (enc (exp (gen) z-0) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-0 x-11) (exp h2-0 (mul z-0 x-11))-          (exp h2 (mul x-2 x-3 (rec x-4) (rec z-0) (rec x-6) x-7)) b-2-          (pubk a-2)))-      (send-        (enc (exp h2 (mul x-2 x-3 (rec x-4) (rec x-6) x-7))-          (pubk b-2))))-    ((recv (enc (exp h2-0 (mul z-0 x-9)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-10) (exp h2-0 (mul z-0 x-9 x-10))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 86)-  (parent 34)-  (unrealized (0 1) (3 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 a-2 b-2 name) (h2 h3 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 x-0)) (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp h2 (mul (rec x-1) z x-2 (rec x-3) x-5 x-6))) (x x-3))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul x-2 (rec x-3) x-5 x-6))) (y z) (z x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-9))-    (h3 (exp h2 (mul x-2 (rec x-3) x-5 x-6 (rec x-7) (rec x-8))))-    (x x-8))-  (precedes ((0 0) (3 1)) ((1 0) (3 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 2) (2 0)))-  (ind-zero-in (z (exp h2 (mul x-2 (rec x-3) x-5 x-6)))-    (x-4 (exp h2 (mul x-2 (rec x-3) x-5 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-8)-  (operation nonce-test (algebra-contracted (h2-0 (exp (gen) x-9)))-    (exp (gen) (mul x-8 x-9)) (3 1) (exp (gen) x-8))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv (enc (exp h2 x-0) (exp h2 (mul x-0 x-2)) h3 b (pubk a)))-      (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-3))-          (exp h2 (mul (rec x-1) z x-2 (rec x-3) x-5 x-6)) b-0-          (pubk a-0)))-      (send (enc (exp h2 (mul (rec x-1) z x-2 x-5 x-6)) (pubk b-0))))-    ((recv (enc (exp h2 (mul x-2 (rec x-3) x-5 x-6)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z) (exp h2 (mul z x-2 (rec x-3) x-5 x-6))-          (exp (gen) x-4) b-1 (pubk a-1))))-    ((send (enc (exp (gen) x-8) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-9) (exp (gen) (mul x-8 x-9))-          (exp h2 (mul x-2 (rec x-3) x-5 x-6 (rec x-7) (rec x-8))) b-2-          (pubk a-2)))-      (send-        (enc (exp h2 (mul x-2 (rec x-3) x-5 x-6 (rec x-7)))-          (pubk b-2)))))-  (label 87)-  (parent 34)-  (unrealized (0 1) (3 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 a-3 b-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 x-7 x-8 y x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 (mul x-0 x-2))) (h3 h3)-    (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3-      (exp h2 (mul (rec x-1) x-3 z (rec x-4) x-5 x-6 x-8 y (rec x-9))))-    (x x-4))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1 (exp h2 (mul x-3 z (rec x-4) x-5 x-8 y (rec x-9)))) (y x-6)-    (z z-0))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9)))) (y z) (z x-7))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-0)-    (h3 (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9) x-10 (rec x-11))))-    (x x-11))-  (precedes ((0 0) (4 1)) ((1 0) (4 1)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 2) (3 0)))-  (ind-zero-in (z (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9))))-    (x-7 (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9))))-    (x-6 (exp h2 (mul x-3 z (rec x-4) x-5 x-8 y (rec x-9))))-    (z-0 (exp h2 (mul x-3 z (rec x-4) x-5 x-8 y (rec x-9)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 x-7 x-11)-  (operation nonce-test (added-strand init 3)-    (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9))) (3 0))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv-        (enc (exp h2 (mul x-0 x-2)) (exp h2 (mul x-0 x-2 x-5)) h3 b-          (pubk a))) (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2-            (mul (rec x-1) x-3 z (rec x-4) x-5 x-6 x-8 y (rec x-9))) b-0-          (pubk a-0)))-      (send-        (enc (exp h2 (mul (rec x-1) x-3 z x-5 x-6 x-8 y (rec x-9)))-          (pubk b-0))))-    ((recv-       (enc (exp h2 (mul x-3 z (rec x-4) x-5 x-8 y (rec x-9))) a-1-         (pubk b-1)))-      (send-        (enc (exp (gen) x-6)-          (exp h2 (mul x-3 z (rec x-4) x-5 x-6 x-8 y (rec x-9)))-          (exp (gen) z-0) b-1 (pubk a-1))))-    ((recv-       (enc (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9))) a-2-         (pubk b-2)))-      (send-        (enc (exp (gen) z)-          (exp h2 (mul z (rec x-4) x-5 x-8 y (rec x-9))) (exp (gen) x-7)-          b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-11) a-3 (pubk b-3)))-      (recv-        (enc h2-0 (exp h2-0 x-11)-          (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9) x-10 (rec x-11)))-          b-3 (pubk a-3)))-      (send-        (enc (exp h2 (mul (rec x-4) x-5 x-8 y (rec x-9) x-10))-          (pubk b-3)))))-  (label 88)-  (parent 35)-  (unrealized (0 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 b-3 a-3 name) (h2 h3 base)-    (x x-0 x-1 x-2 x-3 z z-0 z-1 x-4 y x-5 x-6 x-7 y-0 x-8 x-9 x-10 x-11-      y-1 expn))-  (defstrand init 3 (a a) (b b) (h2 (exp h2 (mul x-0 x-2 x-11))) (h3 h3)-    (x y))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3-      (exp h2-        (mul (rec x-1) x-3 z-0 (rec x-4) y x-5 x-7 y-0 (rec x-8) x-9-          x-10 (rec y-1)))) (x x-4))-  (defstrand resp 2 (b b-1) (a a-1)-    (h1-      (exp h2-        (mul x-3 z-0 (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1))))-    (y x-5) (z z-1))-  (defstrand resp 2 (b b-2) (a a-2)-    (h1 (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1))))-    (y z-0) (z x-6))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9))) (y x-10)-    (z z))-  (precedes ((0 0) (4 0)) ((1 0) (4 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (ind-zero-in (x-10 (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9)))-    (z (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9)))-    (z-0-      (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1))))-    (x-6-      (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1))))-    (x-5-      (exp h2-        (mul x-3 z-0 (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1))))-    (z-1-      (exp h2-        (mul x-3 z-0 (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10-          (rec y-1)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-4 y x-5 x-6 x-10)-  (operation nonce-test (added-strand resp 2)-    (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1)))-    (3 0))-  (traces-    ((send (enc (exp (gen) y) a (pubk b)))-      (recv-        (enc (exp h2 (mul x-0 x-2 x-11)) (exp h2 (mul x-0 x-2 y x-11))-          h3 b (pubk a))) (send (enc (exp h3 y) (pubk b))))-    ((send (enc (exp (gen) x-4) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x x-4))-          (exp h2-            (mul (rec x-1) x-3 z-0 (rec x-4) y x-5 x-7 y-0 (rec x-8) x-9-              x-10 (rec y-1))) b-0 (pubk a-0)))-      (send-        (enc-          (exp h2-            (mul (rec x-1) x-3 z-0 y x-5 x-7 y-0 (rec x-8) x-9 x-10-              (rec y-1))) (pubk b-0))))-    ((recv-       (enc-         (exp h2-           (mul x-3 z-0 (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10-             (rec y-1))) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) x-5)-          (exp h2-            (mul x-3 z-0 (rec x-4) y x-5 x-7 y-0 (rec x-8) x-9 x-10-              (rec y-1))) (exp (gen) z-1) b-1 (pubk a-1))))-    ((recv-       (enc-         (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1)))-         a-2 (pubk b-2)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-            (mul z-0 (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10 (rec y-1)))-          (exp (gen) x-6) b-2 (pubk a-2))))-    ((recv-       (enc (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9)) a-3-         (pubk b-3)))-      (send-        (enc (exp (gen) x-10)-          (exp h2 (mul (rec x-4) y x-7 y-0 (rec x-8) x-9 x-10))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 89)-  (parent 35)-  (unrealized (0 1) (4 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 b-1 a-1 b-2 a-2 name) (h3 base)-    (x x-0 x-1 z z-0 x-2 y x-3 x-4 x-5 x-6 x-7 x-8 x-9 y-0 expn))-  (defstrand init 3 (a a) (b b)-    (h2-      (exp (gen)-        (mul x-0 (rec x-2) y y (rec x-4) (rec x-5) x-6 x-8 y-0)))-    (h3 h3) (x x-2))-  (defstrand init 3 (a a-0) (b b-0) (h2 (exp (gen) x))-    (h3 (exp (gen) (mul (rec x-1) z-0 y x-7 x-9 y-0))) (x y))-  (defstrand resp 2 (b b-1) (a a-1) (h1 (exp (gen) (mul y x-7 x-9 y-0)))-    (y z-0) (z x-3))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp (gen) (mul y y-0))) (y x-7)-    (z z))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (ind-zero-in (x-7 (exp (gen) (mul y y-0))) (z (exp (gen) (mul y y-0)))-    (z-0 (exp (gen) (mul y x-7 x-9 y-0)))-    (x-3 (exp (gen) (mul y x-7 x-9 y-0))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-2 y x-3 x-7)-  (operation nonce-test-    (algebra-contracted-      (h2 (exp (gen) (mul (rec x-2) y y (rec x-4) (rec x-5) x-6 y-0))))-    (exp (gen) (mul y y-0)) (3 0))-  (traces-    ((send (enc (exp (gen) x-2) a (pubk b)))-      (recv-        (enc-          (exp (gen)-            (mul x-0 (rec x-2) y y (rec x-4) (rec x-5) x-6 x-8 y-0))-          (exp (gen) (mul x-0 y y (rec x-4) (rec x-5) x-6 x-8 y-0)) h3 b-          (pubk a))) (send (enc (exp h3 x-2) (pubk b))))-    ((send (enc (exp (gen) y) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul x y))-          (exp (gen) (mul (rec x-1) z-0 y x-7 x-9 y-0)) b-0 (pubk a-0)))-      (send-        (enc (exp (gen) (mul (rec x-1) z-0 y y x-7 x-9 y-0))-          (pubk b-0))))-    ((recv (enc (exp (gen) (mul y x-7 x-9 y-0)) a-1 (pubk b-1)))-      (send-        (enc (exp (gen) z-0) (exp (gen) (mul z-0 y x-7 x-9 y-0))-          (exp (gen) x-3) b-1 (pubk a-1))))-    ((recv (enc (exp (gen) (mul y y-0)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-7) (exp (gen) (mul y x-7 y-0)) (exp (gen) z)-          b-2 (pubk a-2)))))-  (label 90)-  (parent 35)-  (unrealized (0 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 a-4 b-4 a-5 b-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 h2-4 h2-5 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-6) x-7))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-6 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 (rec x-5) x-8))) (x x-5))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-3)-    (h3 (exp h2-2 (mul x-2 x-5 (rec x-9)))) (x x-9))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-4)-    (h3 (exp h2-3 (mul x-3 (rec x-4) x-9))) (x x-4))-  (defstrand init 3 (a a-5) (b b-5) (h2 h2-5)-    (h3 (exp h2-4 (mul x-4 x-10 (rec x-11)))) (x x-11))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 1))-    ((4 2) (3 1)) ((5 0) (6 1)) ((5 2) (4 1)) ((6 2) (5 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-4 x-5 x-6 x-7 x-8 x-9 x-11)-  (operation nonce-test (added-strand init 3) (exp h2-4 x-4) (5 1)-    (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x (rec x-6) x-7)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((send (enc (exp (gen) x-8) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-8) (exp h2-0 (mul x-0 x-6 (rec x-8))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-5) (exp h2-1 (mul x-1 (rec x-5) x-8)) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-8)) (pubk b-2))))-    ((send (enc (exp (gen) x-9) a-3 (pubk b-3)))-      (recv-        (enc h2-3 (exp h2-3 x-9) (exp h2-2 (mul x-2 x-5 (rec x-9))) b-3-          (pubk a-3))) (send (enc (exp h2-2 (mul x-2 x-5)) (pubk b-3))))-    ((send (enc (exp (gen) x-4) a-4 (pubk b-4)))-      (recv-        (enc h2-4 (exp h2-4 x-4) (exp h2-3 (mul x-3 (rec x-4) x-9)) b-4-          (pubk a-4))) (send (enc (exp h2-3 (mul x-3 x-9)) (pubk b-4))))-    ((send (enc (exp (gen) x-11) a-5 (pubk b-5)))-      (recv-        (enc h2-5 (exp h2-5 x-11) (exp h2-4 (mul x-4 x-10 (rec x-11)))-          b-5 (pubk a-5)))-      (send (enc (exp h2-4 (mul x-4 x-10)) (pubk b-5)))))-  (label 91)-  (parent 37)-  (unrealized (1 1) (2 1) (3 1) (4 1) (5 1) (6 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 a-4 b-4 b-5 a-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 h2-4 base)-    (x x-0 x-1 x-2 x-3 z x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-6) x-7))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-6 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 (rec x-5) x-8))) (x x-5))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-3)-    (h3 (exp h2-2 (mul x-2 x-5 (rec x-9)))) (x x-9))-  (defstrand init 3 (a a-4) (b b-4) (h2 (exp h2-4 x-12))-    (h3 (exp h2-3 (mul x-3 (rec x-4) x-9))) (x x-4))-  (defstrand resp 2 (b b-5) (a a-5) (h1 (exp h2-4 (mul x-4 x-10)))-    (y x-11) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 1))-    ((4 2) (3 1)) ((5 0) (6 0)) ((5 2) (4 1)) ((6 1) (5 1)))-  (ind-zero-in (x-11 (exp h2-4 (mul x-4 x-10)))-    (z (exp h2-4 (mul x-4 x-10))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-4 x-5 x-6 x-7 x-8 x-9 x-11)-  (operation nonce-test (added-strand resp 2) (exp h2-4 (mul x-4 x-12))-    (5 1) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x (rec x-6) x-7)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((send (enc (exp (gen) x-8) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-8) (exp h2-0 (mul x-0 x-6 (rec x-8))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-5) (exp h2-1 (mul x-1 (rec x-5) x-8)) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-8)) (pubk b-2))))-    ((send (enc (exp (gen) x-9) a-3 (pubk b-3)))-      (recv-        (enc h2-3 (exp h2-3 x-9) (exp h2-2 (mul x-2 x-5 (rec x-9))) b-3-          (pubk a-3))) (send (enc (exp h2-2 (mul x-2 x-5)) (pubk b-3))))-    ((send (enc (exp (gen) x-4) a-4 (pubk b-4)))-      (recv-        (enc (exp h2-4 x-12) (exp h2-4 (mul x-4 x-12))-          (exp h2-3 (mul x-3 (rec x-4) x-9)) b-4 (pubk a-4)))-      (send (enc (exp h2-3 (mul x-3 x-9)) (pubk b-4))))-    ((recv (enc (exp h2-4 (mul x-4 x-10)) a-5 (pubk b-5)))-      (send-        (enc (exp (gen) x-11) (exp h2-4 (mul x-4 x-10 x-11))-          (exp (gen) z) b-5 (pubk a-5)))))-  (label 92)-  (parent 37)-  (unrealized (1 1) (2 1) (3 1) (4 1) (5 1) (6 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-3)-    (h3 (exp h2-2 (mul x-2 (rec x-3) x-7))) (x x-3))-  (defstrand init 3 (a a-4) (b b-4) (h2 (exp (gen) x-10))-    (h3 (exp h2-3 (mul x-3 x-8 (rec x-9)))) (x x-9))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 1))-    ((4 2) (3 1)) ((5 2) (4 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-3 x-4 x-5 x-6 x-7 x-9)-  (operation nonce-test (algebra-contracted (h2-4 (exp (gen) x-10)))-    (exp (gen) (mul x-9 x-10)) (5 1) (exp (gen) x-9))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-4) (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-7) (exp h2-1 (mul x-1 x-4 (rec x-7))) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-3) a-3 (pubk b-3)))-      (recv-        (enc h2-3 (exp h2-3 x-3) (exp h2-2 (mul x-2 (rec x-3) x-7)) b-3-          (pubk a-3))) (send (enc (exp h2-2 (mul x-2 x-7)) (pubk b-3))))-    ((send (enc (exp (gen) x-9) a-4 (pubk b-4)))-      (recv-        (enc (exp (gen) x-10) (exp (gen) (mul x-9 x-10))-          (exp h2-3 (mul x-3 x-8 (rec x-9))) b-4 (pubk a-4)))-      (send (enc (exp h2-3 (mul x-3 x-8)) (pubk b-4)))))-  (label 93)-  (parent 37)-  (unrealized (1 1) (2 1) (3 1) (4 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 b-4 a-4 a-5 b-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 h2-4 base)-    (x x-0 x-1 x-2 x-3 z x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-6))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-5) x-6))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-5 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 (rec x-4) x-7))) (x x-4))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-3 x-3))-    (h3 (exp h2-2 (mul x-2 x-4 (rec x-8)))) (x x-8))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-3 (mul x-8 x-10))) (y z)-    (z x-9))-  (defstrand init 3 (a a-5) (b b-5) (h2 h2-4)-    (h3 (exp h2-3 (mul x-8 x-10 x-11 (rec x-12)))) (x x-12))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (6 1))-    ((4 2) (3 1)) ((5 1) (4 1)) ((6 2) (5 0)))-  (ind-zero-in (z (exp h2-3 (mul x-8 x-10)))-    (x-9 (exp h2-3 (mul x-8 x-10))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-4 x-5 x-6 x-7 x-8 x-9 x-12)-  (operation nonce-test (added-strand init 3) (exp h2-3 (mul x-8 x-10))-    (5 0) (exp (gen) x-8))-  (traces-    ((send (enc (exp (gen) x-6) a (pubk b)))-      (recv (enc h2 (exp h2 x-6) h3 b (pubk a)))-      (send (enc (exp h3 x-6) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-5) (exp h2 (mul x (rec x-5) x-6)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-7) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-7) (exp h2-0 (mul x-0 x-5 (rec x-7))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-4) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-4) (exp h2-1 (mul x-1 (rec x-4) x-7)) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-7)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-3 x-3) (exp h2-3 (mul x-3 x-8))-          (exp h2-2 (mul x-2 x-4 (rec x-8))) b-3 (pubk a-3)))-      (send (enc (exp h2-2 (mul x-2 x-4)) (pubk b-3))))-    ((recv (enc (exp h2-3 (mul x-8 x-10)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) z) (exp h2-3 (mul z x-8 x-10)) (exp (gen) x-9)-          b-4 (pubk a-4))))-    ((send (enc (exp (gen) x-12) a-5 (pubk b-5)))-      (recv-        (enc h2-4 (exp h2-4 x-12)-          (exp h2-3 (mul x-8 x-10 x-11 (rec x-12))) b-5 (pubk a-5)))-      (send (enc (exp h2-3 (mul x-8 x-10 x-11)) (pubk b-5)))))-  (label 94)-  (parent 38)-  (unrealized (1 1) (2 1) (3 1) (4 1) (6 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 b-4 a-4 b-5 a-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 x-13-      x-14 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-6))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-5) x-6))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-5 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 (rec x-4) x-7))) (x x-4))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-3 (mul x-3 x-13)))-    (h3 (exp h2-2 (mul x-2 x-4 (rec x-8)))) (x x-8))-  (defstrand resp 2 (b b-4) (a a-4)-    (h1 (exp h2-3 (mul x-8 x-10 x-11 x-12 (rec x-14)))) (y z-0) (z x-9))-  (defstrand resp 2 (b b-5) (a a-5) (h1 (exp h2-3 (mul x-8 x-10 x-11)))-    (y x-12) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (6 0))-    ((4 2) (3 1)) ((5 1) (4 1)) ((6 1) (5 0)))-  (ind-zero-in (x-12 (exp h2-3 (mul x-8 x-10 x-11)))-    (z (exp h2-3 (mul x-8 x-10 x-11)))-    (z-0 (exp h2-3 (mul x-8 x-10 x-11 x-12 (rec x-14))))-    (x-9 (exp h2-3 (mul x-8 x-10 x-11 x-12 (rec x-14)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 x-7 x-8 x-9 x-12)-  (operation nonce-test (added-strand resp 2)-    (exp h2-3 (mul x-8 x-10 x-11 x-12 (rec x-14))) (5 0)-    (exp (gen) x-8))-  (traces-    ((send (enc (exp (gen) x-6) a (pubk b)))-      (recv (enc h2 (exp h2 x-6) h3 b (pubk a)))-      (send (enc (exp h3 x-6) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-5) (exp h2 (mul x (rec x-5) x-6)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-7) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-7) (exp h2-0 (mul x-0 x-5 (rec x-7))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-4) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-4) (exp h2-1 (mul x-1 (rec x-4) x-7)) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-7)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-3 (mul x-3 x-13)) (exp h2-3 (mul x-3 x-8 x-13))-          (exp h2-2 (mul x-2 x-4 (rec x-8))) b-3 (pubk a-3)))-      (send (enc (exp h2-2 (mul x-2 x-4)) (pubk b-3))))-    ((recv-       (enc (exp h2-3 (mul x-8 x-10 x-11 x-12 (rec x-14))) a-4-         (pubk b-4)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-3 (mul z-0 x-8 x-10 x-11 x-12 (rec x-14)))-          (exp (gen) x-9) b-4 (pubk a-4))))-    ((recv (enc (exp h2-3 (mul x-8 x-10 x-11)) a-5 (pubk b-5)))-      (send-        (enc (exp (gen) x-12) (exp h2-3 (mul x-8 x-10 x-11 x-12))-          (exp (gen) z) b-5 (pubk a-5)))))-  (label 95)-  (parent 38)-  (unrealized (1 1) (2 1) (3 1) (4 1) (6 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-3) (b b-3)-    (h2 (exp (gen) (mul (rec x-8) x-10 x-11)))-    (h3 (exp h2-2 (mul x-2 (rec x-3) x-7))) (x x-3))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp (gen) (mul x-3 x-11)))-    (y x-9) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 0))-    ((4 2) (3 1)) ((5 1) (4 1)))-  (ind-zero-in (x-9 (exp (gen) (mul x-3 x-11)))-    (z (exp (gen) (mul x-3 x-11))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-7 x-9)-  (operation nonce-test-    (algebra-contracted (h2-3 (exp (gen) (mul (rec x-8) x-11))))-    (exp (gen) (mul x-3 x-11)) (5 0) (exp (gen) x-3))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-4) (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-7) (exp h2-1 (mul x-1 x-4 (rec x-7))) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-3) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) (mul (rec x-8) x-10 x-11))-          (exp (gen) (mul x-3 (rec x-8) x-10 x-11))-          (exp h2-2 (mul x-2 (rec x-3) x-7)) b-3 (pubk a-3)))-      (send (enc (exp h2-2 (mul x-2 x-7)) (pubk b-3))))-    ((recv (enc (exp (gen) (mul x-3 x-11)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-9) (exp (gen) (mul x-3 x-9 x-11))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 96)-  (parent 38)-  (unrealized (1 1) (2 1) (3 1) (4 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 h2-2)-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-2))-    (h3 (exp h2-2 (mul (rec x-3) x-7 x-8))) (x x-3))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul (rec x-3) x-7 x-8 x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 1)) ((3 2) (2 1)) ((4 0) (5 1))-    ((4 2) (3 1)) ((5 2) (4 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-3 x-4 x-5 x-6 x-7 x-10)-  (operation nonce-test (added-strand init 3)-    (exp h2-2 (mul (rec x-3) x-7 x-8)) (4 1))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-4) (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc h2-2 (exp h2-2 x-7) (exp h2-1 (mul x-1 x-4 (rec x-7))) b-2-          (pubk a-2))) (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-3) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-2) (exp (gen) (mul x-2 x-3))-          (exp h2-2 (mul (rec x-3) x-7 x-8)) b-3 (pubk a-3)))-      (send (enc (exp h2-2 (mul x-7 x-8)) (pubk b-3))))-    ((send (enc (exp (gen) x-10) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 x-10)-          (exp h2-2 (mul (rec x-3) x-7 x-8 x-9 (rec x-10))) b-4-          (pubk a-4)))-      (send (enc (exp h2-2 (mul (rec x-3) x-7 x-8 x-9)) (pubk b-4)))))-  (label 97)-  (parent 39)-  (unrealized (1 1) (2 1) (3 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 x-11))-    (h3 (exp h2-1 (mul x-1 x-4 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-2))-    (h3 (exp h2-2 (mul (rec x-3) x-7 x-8 x-9 x-10 (rec x-12)))) (x x-3))-  (defstrand resp 2 (b b-4) (a a-4)-    (h1 (exp h2-2 (mul (rec x-3) x-7 x-8 x-9))) (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 0)) ((3 2) (2 1)) ((4 0) (5 0))-    ((4 2) (3 1)) ((5 1) (4 1)))-  (ind-zero-in (x-10 (exp h2-2 (mul (rec x-3) x-7 x-8 x-9)))-    (z (exp h2-2 (mul (rec x-3) x-7 x-8 x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-7 x-10)-  (operation nonce-test (added-strand resp 2)-    (exp h2-2 (mul (rec x-3) x-7 x-8 x-9 x-10 (rec x-12))) (4 1))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-4) (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 x-11) (exp h2-2 (mul x-7 x-11))-          (exp h2-1 (mul x-1 x-4 (rec x-7))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-4)) (pubk b-2))))-    ((send (enc (exp (gen) x-3) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-2) (exp (gen) (mul x-2 x-3))-          (exp h2-2 (mul (rec x-3) x-7 x-8 x-9 x-10 (rec x-12))) b-3-          (pubk a-3)))-      (send-        (enc (exp h2-2 (mul x-7 x-8 x-9 x-10 (rec x-12))) (pubk b-3))))-    ((recv (enc (exp h2-2 (mul (rec x-3) x-7 x-8 x-9)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-10)-          (exp h2-2 (mul (rec x-3) x-7 x-8 x-9 x-10)) (exp (gen) z) b-4-          (pubk a-4)))))-  (label 98)-  (parent 39)-  (unrealized (1 1) (2 1) (3 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2)-    (h2 (exp (gen) (mul (rec x-2) (rec x-6) x-7 x-7 x-9)))-    (h3 (exp h2-1 (mul x-1 (rec x-2) x-5))) (x x-2))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-8))-    (h3 (exp (gen) (mul x-7 x-9))) (x x-7))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-5 x-7)-  (operation nonce-test-    (algebra-contracted-      (h2-2 (exp (gen) (mul (rec x-2) (rec x-6) x-7 x-7 x-9))))-    (exp (gen) (mul x-7 x-9)) (4 1))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) (mul (rec x-2) (rec x-6) x-7 x-7 x-9))-          (exp (gen) (mul (rec x-6) x-7 x-7 x-9))-          (exp h2-1 (mul x-1 (rec x-2) x-5)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-5)) (pubk b-2))))-    ((send (enc (exp (gen) x-7) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-8) (exp (gen) (mul x-7 x-8))-          (exp (gen) (mul x-7 x-9)) b-3 (pubk a-3)))-      (send (enc (exp (gen) (mul x-7 x-7 x-9)) (pubk b-3)))))-  (label 99)-  (parent 39)-  (unrealized (1 1) (2 1) (3 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 a-4 b-4 a-5 b-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 h2-4 base)-    (x x-0 x-1 x-2 x-3 x-4 z x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-8))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-7) x-8))) (x x-7))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-7 (rec x-9)))) (x x-9))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 x-2))-    (h3 (exp h2-1 (mul x-1 (rec x-6) x-9))) (x x-6))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-2 (mul x-3 x-6)))-    (y x-10) (z x-5))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul x-3 x-4 (rec z) x-6))) (x z))-  (defstrand init 3 (a a-5) (b b-5) (h2 h2-4)-    (h3 (exp h2-3 (mul z x-11 (rec x-12)))) (x x-12))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 1)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 0) (6 1)) ((5 2) (4 0)) ((6 2) (5 1)))-  (ind-zero-in (x-10 (exp h2-2 (mul x-3 x-6)))-    (x-5 (exp h2-2 (mul x-3 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-5 x-6 x-7 x-8 x-9 x-10 x-12)-  (operation nonce-test (added-strand init 3) (exp h2-3 z) (5 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-8) a (pubk b)))-      (recv (enc h2 (exp h2 x-8) h3 b (pubk a)))-      (send (enc (exp h3 x-8) (pubk b))))-    ((send (enc (exp (gen) x-7) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-7) (exp h2 (mul x (rec x-7) x-8)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-8)) (pubk b-0))))-    ((send (enc (exp (gen) x-9) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-9) (exp h2-0 (mul x-0 x-7 (rec x-9))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-7)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 x-2) (exp h2-2 (mul x-2 x-6))-          (exp h2-1 (mul x-1 (rec x-6) x-9)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-9)) (pubk b-2))))-    ((recv (enc (exp h2-2 (mul x-3 x-6)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-10) (exp h2-2 (mul x-3 x-6 x-10))-          (exp (gen) x-5) b-3 (pubk a-3))))-    ((send (enc (exp (gen) z) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 z) (exp h2-2 (mul x-3 x-4 (rec z) x-6)) b-4-          (pubk a-4)))-      (send (enc (exp h2-2 (mul x-3 x-4 x-6)) (pubk b-4))))-    ((send (enc (exp (gen) x-12) a-5 (pubk b-5)))-      (recv-        (enc h2-4 (exp h2-4 x-12) (exp h2-3 (mul z x-11 (rec x-12))) b-5-          (pubk a-5))) (send (enc (exp h2-3 (mul z x-11)) (pubk b-5)))))-  (label 100)-  (parent 40)-  (unrealized (1 1) (2 1) (3 1) (5 1) (6 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 a-4 b-4 b-5 a-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 x-4 z z-0 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 x-13-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-8))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-7) x-8))) (x x-7))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-7 (rec x-9)))) (x x-9))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 x-2))-    (h3 (exp h2-1 (mul x-1 (rec x-6) x-9))) (x x-6))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-2 (mul x-3 x-6)))-    (y x-10) (z x-5))-  (defstrand init 3 (a a-4) (b b-4) (h2 (exp h2-3 x-13))-    (h3 (exp h2-2 (mul x-3 x-4 (rec z-0) x-6))) (x z-0))-  (defstrand resp 2 (b b-5) (a a-5) (h1 (exp h2-3 (mul z-0 x-11)))-    (y x-12) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 1)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 0) (6 0)) ((5 2) (4 0)) ((6 1) (5 1)))-  (ind-zero-in (x-12 (exp h2-3 (mul z-0 x-11)))-    (z (exp h2-3 (mul z-0 x-11))) (x-10 (exp h2-2 (mul x-3 x-6)))-    (x-5 (exp h2-2 (mul x-3 x-6))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-5 x-6 x-7 x-8 x-9 x-10 x-12)-  (operation nonce-test (added-strand resp 2) (exp h2-3 (mul z-0 x-13))-    (5 1) (exp (gen) z-0))-  (traces-    ((send (enc (exp (gen) x-8) a (pubk b)))-      (recv (enc h2 (exp h2 x-8) h3 b (pubk a)))-      (send (enc (exp h3 x-8) (pubk b))))-    ((send (enc (exp (gen) x-7) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-7) (exp h2 (mul x (rec x-7) x-8)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-8)) (pubk b-0))))-    ((send (enc (exp (gen) x-9) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-9) (exp h2-0 (mul x-0 x-7 (rec x-9))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-7)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 x-2) (exp h2-2 (mul x-2 x-6))-          (exp h2-1 (mul x-1 (rec x-6) x-9)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-9)) (pubk b-2))))-    ((recv (enc (exp h2-2 (mul x-3 x-6)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-10) (exp h2-2 (mul x-3 x-6 x-10))-          (exp (gen) x-5) b-3 (pubk a-3))))-    ((send (enc (exp (gen) z-0) a-4 (pubk b-4)))-      (recv-        (enc (exp h2-3 x-13) (exp h2-3 (mul z-0 x-13))-          (exp h2-2 (mul x-3 x-4 (rec z-0) x-6)) b-4 (pubk a-4)))-      (send (enc (exp h2-2 (mul x-3 x-4 x-6)) (pubk b-4))))-    ((recv (enc (exp h2-3 (mul z-0 x-11)) a-5 (pubk b-5)))-      (send-        (enc (exp (gen) x-12) (exp h2-3 (mul z-0 x-11 x-12))-          (exp (gen) z) b-5 (pubk a-5)))))-  (label 101)-  (parent 40)-  (unrealized (1 1) (2 1) (3 1) (5 1) (6 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 z x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-4 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-3) x-5))) (x x-3))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 x-2))-    (h3 (exp h2-1 (mul x-1 x-3 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp h2-2 (mul x-6 x-8))) (y z)-    (z x-7))-  (defstrand init 3 (a a-4) (b b-4) (h2 (exp (gen) x-11))-    (h3 (exp h2-2 (mul x-6 x-8 x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 1)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 2) (4 0)))-  (ind-zero-in (z (exp h2-2 (mul x-6 x-8)))-    (x-7 (exp h2-2 (mul x-6 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-3 x-4 x-5 x-6 x-7 x-10)-  (operation nonce-test (algebra-contracted (h2-3 (exp (gen) x-11)))-    (exp (gen) (mul x-10 x-11)) (5 1) (exp (gen) x-10))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-5) (exp h2 (mul x x-4 (rec x-5))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-3) (exp h2-0 (mul x-0 (rec x-3) x-5)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 x-2) (exp h2-2 (mul x-2 x-6))-          (exp h2-1 (mul x-1 x-3 (rec x-6))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-3)) (pubk b-2))))-    ((recv (enc (exp h2-2 (mul x-6 x-8)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z) (exp h2-2 (mul z x-6 x-8)) (exp (gen) x-7)-          b-3 (pubk a-3))))-    ((send (enc (exp (gen) x-10) a-4 (pubk b-4)))-      (recv-        (enc (exp (gen) x-11) (exp (gen) (mul x-10 x-11))-          (exp h2-2 (mul x-6 x-8 x-9 (rec x-10))) b-4 (pubk a-4)))-      (send (enc (exp h2-2 (mul x-6 x-8 x-9)) (pubk b-4)))))-  (label 102)-  (parent 40)-  (unrealized (1 1) (2 1) (3 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 b-4 a-4 a-5 b-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 x-4 z z-0 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 x-13-      x-14 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-6) x-7))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-6 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 (mul x-2 x-3)))-    (h3 (exp h2-1 (mul x-1 (rec x-5) x-8))) (x x-5))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-2 (mul (rec x-4) z x-5 x-11 x-12))) (y x-9) (z z-0))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-2 (mul x-5 x-11 x-12)))-    (y z) (z x-10))-  (defstrand init 3 (a a-5) (b b-5) (h2 h2-3)-    (h3 (exp h2-2 (mul x-5 x-11 x-12 x-13 (rec x-14)))) (x x-14))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (6 1)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 1) (4 0)) ((6 2) (5 0)))-  (ind-zero-in (z (exp h2-2 (mul x-5 x-11 x-12)))-    (x-10 (exp h2-2 (mul x-5 x-11 x-12)))-    (x-9 (exp h2-2 (mul (rec x-4) z x-5 x-11 x-12)))-    (z-0 (exp h2-2 (mul (rec x-4) z x-5 x-11 x-12))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-5 x-6 x-7 x-8 x-9 x-10 x-14)-  (operation nonce-test (added-strand init 3)-    (exp h2-2 (mul x-5 x-11 x-12)) (5 0) (exp (gen) x-5))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x (rec x-6) x-7)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((send (enc (exp (gen) x-8) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-8) (exp h2-0 (mul x-0 x-6 (rec x-8))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 (mul x-2 x-3)) (exp h2-2 (mul x-2 x-3 x-5))-          (exp h2-1 (mul x-1 (rec x-5) x-8)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-8)) (pubk b-2))))-    ((recv-       (enc (exp h2-2 (mul (rec x-4) z x-5 x-11 x-12)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-9)-          (exp h2-2 (mul (rec x-4) z x-5 x-9 x-11 x-12)) (exp (gen) z-0)-          b-3 (pubk a-3))))-    ((recv (enc (exp h2-2 (mul x-5 x-11 x-12)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) z) (exp h2-2 (mul z x-5 x-11 x-12))-          (exp (gen) x-10) b-4 (pubk a-4))))-    ((send (enc (exp (gen) x-14) a-5 (pubk b-5)))-      (recv-        (enc h2-3 (exp h2-3 x-14)-          (exp h2-2 (mul x-5 x-11 x-12 x-13 (rec x-14))) b-5-          (pubk a-5)))-      (send (enc (exp h2-2 (mul x-5 x-11 x-12 x-13)) (pubk b-5)))))-  (label 103)-  (parent 41)-  (unrealized (1 1) (2 1) (3 1) (6 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 b-4 a-4 b-5 a-5 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 x-4 z z-0 z-1 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12-      x-13 x-14 x-15 x-16 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-6) x-7))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-6 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp h2-2 (mul x-2 x-3 x-15)))-    (h3 (exp h2-1 (mul x-1 (rec x-5) x-8))) (x x-5))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1-      (exp h2-2 (mul (rec x-4) z-0 x-5 x-11 x-12 x-13 x-14 (rec x-16))))-    (y x-9) (z z-1))-  (defstrand resp 2 (b b-4) (a a-4)-    (h1 (exp h2-2 (mul x-5 x-11 x-12 x-13 x-14 (rec x-16)))) (y z-0)-    (z x-10))-  (defstrand resp 2 (b b-5) (a a-5)-    (h1 (exp h2-2 (mul x-5 x-11 x-12 x-13))) (y x-14) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (6 0)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 1) (4 0)) ((6 1) (5 0)))-  (ind-zero-in (x-14 (exp h2-2 (mul x-5 x-11 x-12 x-13)))-    (z (exp h2-2 (mul x-5 x-11 x-12 x-13)))-    (z-0 (exp h2-2 (mul x-5 x-11 x-12 x-13 x-14 (rec x-16))))-    (x-10 (exp h2-2 (mul x-5 x-11 x-12 x-13 x-14 (rec x-16))))-    (x-9-      (exp h2-2 (mul (rec x-4) z-0 x-5 x-11 x-12 x-13 x-14 (rec x-16))))-    (z-1-      (exp h2-2-        (mul (rec x-4) z-0 x-5 x-11 x-12 x-13 x-14 (rec x-16)))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 z-1 x-5 x-6 x-7 x-8 x-9 x-10 x-14)-  (operation nonce-test (added-strand resp 2)-    (exp h2-2 (mul x-5 x-11 x-12 x-13 x-14 (rec x-16))) (5 0)-    (exp (gen) x-5))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x (rec x-6) x-7)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((send (enc (exp (gen) x-8) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-8) (exp h2-0 (mul x-0 x-6 (rec x-8))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-5) a-2 (pubk b-2)))-      (recv-        (enc (exp h2-2 (mul x-2 x-3 x-15))-          (exp h2-2 (mul x-2 x-3 x-5 x-15))-          (exp h2-1 (mul x-1 (rec x-5) x-8)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-8)) (pubk b-2))))-    ((recv-       (enc-         (exp h2-2-           (mul (rec x-4) z-0 x-5 x-11 x-12 x-13 x-14 (rec x-16))) a-3-         (pubk b-3)))-      (send-        (enc (exp (gen) x-9)-          (exp h2-2-            (mul (rec x-4) z-0 x-5 x-9 x-11 x-12 x-13 x-14 (rec x-16)))-          (exp (gen) z-1) b-3 (pubk a-3))))-    ((recv-       (enc (exp h2-2 (mul x-5 x-11 x-12 x-13 x-14 (rec x-16))) a-4-         (pubk b-4)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-2 (mul z-0 x-5 x-11 x-12 x-13 x-14 (rec x-16)))-          (exp (gen) x-10) b-4 (pubk a-4))))-    ((recv (enc (exp h2-2 (mul x-5 x-11 x-12 x-13)) a-5 (pubk b-5)))-      (send-        (enc (exp (gen) x-14) (exp h2-2 (mul x-5 x-11 x-12 x-13 x-14))-          (exp (gen) z) b-5 (pubk a-5)))))-  (label 104)-  (parent 41)-  (unrealized (1 1) (2 1) (3 1) (6 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 z z-0 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 x-13-      expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-4 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-3) x-5))) (x x-3))-  (defstrand init 3 (a a-2) (b b-2)-    (h2 (exp (gen) (mul x-2 (rec x-8) (rec x-9) x-11 x-13)))-    (h3 (exp h2-1 (mul x-1 x-3 (rec x-6)))) (x x-6))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp (gen) (mul x-6 x-10 (rec x-12) x-13))) (y z-0) (z x-7))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp (gen) (mul x-6 x-13)))-    (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (5 0)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 1) (4 0)))-  (ind-zero-in (x-10 (exp (gen) (mul x-6 x-13)))-    (z (exp (gen) (mul x-6 x-13)))-    (z-0 (exp (gen) (mul x-6 x-10 (rec x-12) x-13)))-    (x-7 (exp (gen) (mul x-6 x-10 (rec x-12) x-13))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-3 x-4 x-5 x-6 x-7 x-10)-  (operation nonce-test-    (algebra-contracted-      (h2-2 (exp (gen) (mul (rec x-8) (rec x-9) x-13))))-    (exp (gen) (mul x-6 x-13)) (5 0) (exp (gen) x-6))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-5) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-5) (exp h2 (mul x x-4 (rec x-5))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-3) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-3) (exp h2-0 (mul x-0 (rec x-3) x-5)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-5)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) (mul x-2 (rec x-8) (rec x-9) x-11 x-13))-          (exp (gen) (mul x-2 x-6 (rec x-8) (rec x-9) x-11 x-13))-          (exp h2-1 (mul x-1 x-3 (rec x-6))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-1 x-3)) (pubk b-2))))-    ((recv-       (enc (exp (gen) (mul x-6 x-10 (rec x-12) x-13)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z-0)-          (exp (gen) (mul z-0 x-6 x-10 (rec x-12) x-13)) (exp (gen) x-7)-          b-3 (pubk a-3))))-    ((recv (enc (exp (gen) (mul x-6 x-13)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-10) (exp (gen) (mul x-6 x-10 x-13))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 105)-  (parent 41)-  (unrealized (1 1) (2 1) (3 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul (rec x-1) x-2 (rec x-5) x-7 x-10)))-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2)-    (h2 (exp (gen) (mul (rec x-6) x-8 x-9)))-    (h3 (exp (gen) (mul x-7 x-10))) (x x-2))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp (gen) (mul x-2 x-9)))-    (y x-7) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-7 (exp (gen) (mul x-2 x-9)))-    (z (exp (gen) (mul x-2 x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-7)-  (operation nonce-test-    (algebra-contracted-      (h2-1 (exp (gen) (mul (rec x-1) x-2 (rec x-5) x-7 x-10))))-    (exp (gen) (mul x-7 x-10)) (3 1))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul (rec x-1) x-2 (rec x-5) x-7 x-10))-          (exp (gen) (mul (rec x-1) x-2 x-7 x-10))-          (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) (mul (rec x-6) x-8 x-9))-          (exp (gen) (mul x-2 (rec x-6) x-8 x-9))-          (exp (gen) (mul x-7 x-10)) b-2 (pubk a-2)))-      (send (enc (exp (gen) (mul x-2 x-7 x-10)) (pubk b-2))))-    ((recv (enc (exp (gen) (mul x-2 x-9)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-7) (exp (gen) (mul x-2 x-7 x-9)) (exp (gen) z)-          b-3 (pubk a-3)))))-  (label 106)-  (parent 42)-  (seen 106)-  (unrealized (1 1) (2 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-6))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-6 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-5) x-7))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-1 (mul x-2 x-5 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-2 x-3 (rec x-4) x-5 (rec x-8)))) (x x-4))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul x-4 x-9 (rec x-10)))) (x x-10))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 1))-    ((4 2) (3 1)) ((5 2) (4 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-4 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand init 3) (exp h2-2 x-4) (4 1)-    (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-6) a (pubk b)))-      (recv (enc h2 (exp h2 x-6) h3 b (pubk a)))-      (send (enc (exp h3 x-6) (pubk b))))-    ((send (enc (exp (gen) x-7) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-7) (exp h2 (mul x x-6 (rec x-7))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 (rec x-5) x-7)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-7)) (pubk b-1))))-    ((send (enc (exp (gen) x-8) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-8))-          (exp h2-1 (mul x-2 x-5 (rec x-8))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-2 x-5)) (pubk b-2))))-    ((send (enc (exp (gen) x-4) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-4)-          (exp h2-1 (mul x-2 x-3 (rec x-4) x-5 (rec x-8))) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul x-2 x-3 x-5 (rec x-8))) (pubk b-3))))-    ((send (enc (exp (gen) x-10) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 x-10) (exp h2-2 (mul x-4 x-9 (rec x-10)))-          b-4 (pubk a-4)))-      (send (enc (exp h2-2 (mul x-4 x-9)) (pubk b-4)))))-  (label 107)-  (parent 43)-  (unrealized (1 1) (2 1) (4 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 z x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-6))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-6 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 (rec x-5) x-7))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-1 (mul x-2 x-5 (rec x-8)))) (x x-8))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp h2-2 x-11))-    (h3 (exp h2-1 (mul x-2 x-3 (rec x-4) x-5 (rec x-8)))) (x x-4))-  (defstrand resp 2 (b b-4) (a a-4) (h1 (exp h2-2 (mul x-4 x-9)))-    (y x-10) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 0) (5 0))-    ((4 2) (3 1)) ((5 1) (4 1)))-  (ind-zero-in (x-10 (exp h2-2 (mul x-4 x-9)))-    (z (exp h2-2 (mul x-4 x-9))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-4 x-5 x-6 x-7 x-8 x-10)-  (operation nonce-test (added-strand resp 2) (exp h2-2 (mul x-4 x-11))-    (4 1) (exp (gen) x-4))-  (traces-    ((send (enc (exp (gen) x-6) a (pubk b)))-      (recv (enc h2 (exp h2 x-6) h3 b (pubk a)))-      (send (enc (exp h3 x-6) (pubk b))))-    ((send (enc (exp (gen) x-7) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-7) (exp h2 (mul x x-6 (rec x-7))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-6)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 (rec x-5) x-7)) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-7)) (pubk b-1))))-    ((send (enc (exp (gen) x-8) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-8))-          (exp h2-1 (mul x-2 x-5 (rec x-8))) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-2 x-5)) (pubk b-2))))-    ((send (enc (exp (gen) x-4) a-3 (pubk b-3)))-      (recv-        (enc (exp h2-2 x-11) (exp h2-2 (mul x-4 x-11))-          (exp h2-1 (mul x-2 x-3 (rec x-4) x-5 (rec x-8))) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul x-2 x-3 x-5 (rec x-8))) (pubk b-3))))-    ((recv (enc (exp h2-2 (mul x-4 x-9)) a-4 (pubk b-4)))-      (send-        (enc (exp (gen) x-10) (exp h2-2 (mul x-4 x-9 x-10))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 108)-  (parent 43)-  (unrealized (1 1) (2 1) (4 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 a-3 b-3 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1) (h2 h2-1)-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-1 (mul (rec x-2) x-5 x-6))) (x x-2))-  (defstrand init 3 (a a-3) (b b-3) (h2 (exp (gen) x-9))-    (h3 (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 (rec x-8)))) (x x-8))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 0) (4 1)) ((3 2) (2 1)) ((4 2) (3 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test (algebra-contracted (h2-2 (exp (gen) x-9)))-    (exp (gen) (mul x-8 x-9)) (4 1) (exp (gen) x-8))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc h2-1 (exp h2-1 x-5) (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1-          (pubk a-1))) (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-2))-          (exp h2-1 (mul (rec x-2) x-5 x-6)) b-2 (pubk a-2)))-      (send (enc (exp h2-1 (mul x-5 x-6)) (pubk b-2))))-    ((send (enc (exp (gen) x-8) a-3 (pubk b-3)))-      (recv-        (enc (exp (gen) x-9) (exp (gen) (mul x-8 x-9))-          (exp h2-1 (mul (rec x-2) x-5 x-6 x-7 (rec x-8))) b-3-          (pubk a-3)))-      (send (enc (exp h2-1 (mul (rec x-2) x-5 x-6 x-7)) (pubk b-3)))))-  (label 109)-  (parent 43)-  (unrealized (1 1) (2 1) (4 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 a-4 b-4 name)-    (h2 h3 h2-0 h2-1 h2-2 base)-    (x x-0 x-1 x-2 x-3 z x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-2))-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp h2-1 (mul (rec x-3) z x-4 (rec x-7) x-9 x-10))) (x x-7))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-1 (mul x-4 (rec x-7) x-9 x-10))) (y z) (z x-8))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-2)-    (h3 (exp h2-1 (mul x-4 (rec x-7) x-9 x-10 (rec x-11) (rec x-12))))-    (x x-12))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (5 1))-    ((2 2) (1 1)) ((3 0) (5 1)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 2) (4 0)))-  (ind-zero-in (z (exp h2-1 (mul x-4 (rec x-7) x-9 x-10)))-    (x-8 (exp h2-1 (mul x-4 (rec x-7) x-9 x-10))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-4 x-5 x-6 x-7 x-8 x-12)-  (operation nonce-test (added-strand init 3)-    (exp h2-1 (mul x-4 (rec x-7) x-9 x-10)) (4 0))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-2) (exp h2-1 (mul x-2 x-4))-          (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) x-7) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-7))-          (exp h2-1 (mul (rec x-3) z x-4 (rec x-7) x-9 x-10)) b-2-          (pubk a-2)))-      (send (enc (exp h2-1 (mul (rec x-3) z x-4 x-9 x-10)) (pubk b-2))))-    ((recv (enc (exp h2-1 (mul x-4 (rec x-7) x-9 x-10)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z) (exp h2-1 (mul z x-4 (rec x-7) x-9 x-10))-          (exp (gen) x-8) b-3 (pubk a-3))))-    ((send (enc (exp (gen) x-12) a-4 (pubk b-4)))-      (recv-        (enc h2-2 (exp h2-2 x-12)-          (exp h2-1 (mul x-4 (rec x-7) x-9 x-10 (rec x-11) (rec x-12)))-          b-4 (pubk a-4)))-      (send-        (enc (exp h2-1 (mul x-4 (rec x-7) x-9 x-10 (rec x-11)))-          (pubk b-4)))))-  (label 110)-  (parent 44)-  (unrealized (1 1) (2 1) (5 1))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 b-4 a-4 name)-    (h2 h3 h2-0 h2-1 base)-    (x x-0 x-1 x-2 x-3 z z-0 x-4 x-5 x-6 y x-7 x-8 x-9 x-10 x-11 x-12-      x-13 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-5))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-5 (rec x-6)))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 (mul x-2 x-12)))-    (h3 (exp h2-0 (mul x-0 (rec x-4) x-6))) (x x-4))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3-      (exp h2-1-        (mul (rec x-3) z-0 x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13)))-    (x y))-  (defstrand resp 2 (b b-3) (a a-3)-    (h1 (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13)))-    (y z-0) (z x-7))-  (defstrand resp 2 (b b-4) (a a-4)-    (h1 (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10)))) (y x-11) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (5 0))-    ((2 2) (1 1)) ((3 0) (5 0)) ((3 2) (2 1)) ((4 1) (3 1))-    ((5 1) (4 0)))-  (ind-zero-in (x-11 (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10))))-    (z (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10))))-    (z-0 (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13)))-    (x-7 (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13))))-  (non-orig (privk a) (privk b))-  (uniq-gen z z-0 x-4 x-5 x-6 y x-7 x-11)-  (operation nonce-test (added-strand resp 2)-    (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13)) (4 0))-  (traces-    ((send (enc (exp (gen) x-5) a (pubk b)))-      (recv (enc h2 (exp h2 x-5) h3 b (pubk a)))-      (send (enc (exp h3 x-5) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x x-5 (rec x-6))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-5)) (pubk b-0))))-    ((send (enc (exp (gen) x-4) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 (mul x-2 x-12)) (exp h2-1 (mul x-2 x-4 x-12))-          (exp h2-0 (mul x-0 (rec x-4) x-6)) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((send (enc (exp (gen) y) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 y))-          (exp h2-1-            (mul (rec x-3) z-0 x-4 (rec y) x-8 x-9 (rec x-10) x-11-              x-13)) b-2 (pubk a-2)))-      (send-        (enc-          (exp h2-1-            (mul (rec x-3) z-0 x-4 x-8 x-9 (rec x-10) x-11 x-13))-          (pubk b-2))))-    ((recv-       (enc (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13))-         a-3 (pubk b-3)))-      (send-        (enc (exp (gen) z-0)-          (exp h2-1 (mul z-0 x-4 (rec y) x-8 x-9 (rec x-10) x-11 x-13))-          (exp (gen) x-7) b-3 (pubk a-3))))-    ((recv-       (enc (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10))) a-4-         (pubk b-4)))-      (send-        (enc (exp (gen) x-11)-          (exp h2-1 (mul x-4 (rec y) x-8 x-9 (rec x-10) x-11))-          (exp (gen) z) b-4 (pubk a-4)))))-  (label 111)-  (parent 44)-  (unrealized (1 1) (2 1) (5 0))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 b-3 a-3 name) (h2 h3 h2-0 base)-    (x x-0 x-1 z x-2 x-3 x-4 x-5 x-6 x-7 x-8 x-9 x-10 x-11 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-4))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-3) x-4))) (x x-3))-  (defstrand init 3 (a a-1) (b b-1)-    (h2 (exp (gen) (mul x-2 (rec x-6) (rec x-7) x-9 x-11)))-    (h3 (exp h2-0 (mul x-0 x-3 (rec x-5)))) (x x-5))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-1))-    (h3 (exp (gen) (mul x-5 x-8 (rec x-10) x-11))) (x x-2))-  (defstrand resp 2 (b b-3) (a a-3) (h1 (exp (gen) (mul x-5 x-11)))-    (y x-8) (z z))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 0))-    ((2 2) (1 1)) ((3 0) (4 0)) ((3 2) (2 1)) ((4 1) (3 1)))-  (ind-zero-in (x-8 (exp (gen) (mul x-5 x-11)))-    (z (exp (gen) (mul x-5 x-11))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-2 x-3 x-4 x-5 x-8)-  (operation nonce-test-    (algebra-contracted-      (h2-1 (exp (gen) (mul x-2 (rec x-6) (rec x-7) x-11))))-    (exp (gen) (mul x-5 x-11)) (4 0))-  (traces-    ((send (enc (exp (gen) x-4) a (pubk b)))-      (recv (enc h2 (exp h2 x-4) h3 b (pubk a)))-      (send (enc (exp h3 x-4) (pubk b))))-    ((send (enc (exp (gen) x-3) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-3) (exp h2 (mul x (rec x-3) x-4)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-4)) (pubk b-0))))-    ((send (enc (exp (gen) x-5) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul x-2 (rec x-6) (rec x-7) x-9 x-11))-          (exp (gen) (mul x-2 x-5 (rec x-6) (rec x-7) x-9 x-11))-          (exp h2-0 (mul x-0 x-3 (rec x-5))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-3)) (pubk b-1))))-    ((send (enc (exp (gen) x-2) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul x-1 x-2))-          (exp (gen) (mul x-5 x-8 (rec x-10) x-11)) b-2 (pubk a-2)))-      (send-        (enc (exp (gen) (mul x-2 x-5 x-8 (rec x-10) x-11)) (pubk b-2))))-    ((recv (enc (exp (gen) (mul x-5 x-11)) a-3 (pubk b-3)))-      (send-        (enc (exp (gen) x-8) (exp (gen) (mul x-5 x-8 x-11))-          (exp (gen) z) b-3 (pubk a-3)))))-  (label 112)-  (parent 44)-  (unrealized (1 1) (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 a-2 b-2 name) (h2 h3 h2-0 base)-    (x x-0 x-1 x-2 x-3 x-4 x-5 x-6 x-7 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-1))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x x-1 (rec x-2)))) (x x-2))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp (gen) (mul x-4 x-7)))-    (h3 (exp h2-0 (mul x-0 x-2 (rec x-7)))) (x x-7))-  (defstrand init 3 (a a-2) (b b-2) (h2 (exp (gen) x-3))-    (h3 (exp (gen) (mul x-5 x-6))) (x x-6))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (3 1))-    ((2 2) (1 1)) ((3 2) (2 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x-1 x-2 x-6 x-7)-  (operation nonce-test-    (algebra-contracted (x-8 x-7)-      (x-9 (mul (rec x-4) x-5 x-6 x-6 (rec x-7) (rec x-7))) (x-10 x-6)-      (x-11 x-5) (x-12 x-4)) (exp (gen) (mul x-4 x-7)) (2 1))-  (traces-    ((send (enc (exp (gen) x-1) a (pubk b)))-      (recv (enc h2 (exp h2 x-1) h3 b (pubk a)))-      (send (enc (exp h3 x-1) (pubk b))))-    ((send (enc (exp (gen) x-2) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-2) (exp h2 (mul x x-1 (rec x-2))) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-1)) (pubk b-0))))-    ((send (enc (exp (gen) x-7) a-1 (pubk b-1)))-      (recv-        (enc (exp (gen) (mul x-4 x-7)) (exp (gen) (mul x-4 x-7 x-7))-          (exp h2-0 (mul x-0 x-2 (rec x-7))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-2)) (pubk b-1))))-    ((send (enc (exp (gen) x-6) a-2 (pubk b-2)))-      (recv-        (enc (exp (gen) x-3) (exp (gen) (mul x-3 x-6))-          (exp (gen) (mul x-5 x-6)) b-2 (pubk a-2)))-      (send (enc (exp (gen) (mul x-5 x-6 x-6)) (pubk b-2)))))-  (label 113)-  (parent 45)-  (seen 113)-  (unrealized (1 1) (2 1))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (a b a-0 b-0 a-1 b-1 b-2 a-2 a-3 b-3 a-4 b-4 a-5 b-5 name)-    (h2 h3 h2-0 h2-1 h2-2 h2-3 h2-4 base)-    (x x-0 x-1 x-2 x-3 x-4 z x-5 x-6 x-7 x-8 x-9 x-10 x-11 x-12 expn))-  (defstrand init 3 (a a) (b b) (h2 h2) (h3 h3) (x x-7))-  (defstrand init 3 (a a-0) (b b-0) (h2 h2-0)-    (h3 (exp h2 (mul x (rec x-6) x-7))) (x x-6))-  (defstrand init 3 (a a-1) (b b-1) (h2 (exp h2-1 x-1))-    (h3 (exp h2-0 (mul x-0 x-6 (rec x-8)))) (x x-8))-  (defstrand resp 2 (b b-2) (a a-2) (h1 (exp h2-1 (mul x-2 x-8)))-    (y x-5) (z x-9))-  (defstrand init 3 (a a-3) (b b-3) (h2 h2-2)-    (h3 (exp h2-1 (mul x-2 x-3 x-8 (rec x-10)))) (x x-10))-  (defstrand init 3 (a a-4) (b b-4) (h2 h2-3)-    (h3 (exp h2-2 (mul x-4 (rec z) x-10))) (x z))-  (defstrand init 3 (a a-5) (b b-5) (h2 h2-4)-    (h3 (exp h2-3 (mul z x-11 (rec x-12)))) (x x-12))-  (precedes ((0 0) (1 1)) ((1 0) (2 1)) ((1 2) (0 1)) ((2 0) (4 1))-    ((2 2) (1 1)) ((3 1) (2 1)) ((4 0) (5 1)) ((4 2) (3 0))-    ((5 0) (6 1)) ((5 2) (4 1)) ((6 2) (5 1)))-  (ind-zero-in (x-5 (exp h2-1 (mul x-2 x-8)))-    (x-9 (exp h2-1 (mul x-2 x-8))))-  (non-orig (privk a) (privk b))-  (uniq-gen z x-5 x-6 x-7 x-8 x-9 x-10 x-12)-  (operation nonce-test (added-strand init 3) (exp h2-3 z) (5 1)-    (exp (gen) z))-  (traces-    ((send (enc (exp (gen) x-7) a (pubk b)))-      (recv (enc h2 (exp h2 x-7) h3 b (pubk a)))-      (send (enc (exp h3 x-7) (pubk b))))-    ((send (enc (exp (gen) x-6) a-0 (pubk b-0)))-      (recv-        (enc h2-0 (exp h2-0 x-6) (exp h2 (mul x (rec x-6) x-7)) b-0-          (pubk a-0))) (send (enc (exp h2 (mul x x-7)) (pubk b-0))))-    ((send (enc (exp (gen) x-8) a-1 (pubk b-1)))-      (recv-        (enc (exp h2-1 x-1) (exp h2-1 (mul x-1 x-8))-          (exp h2-0 (mul x-0 x-6 (rec x-8))) b-1 (pubk a-1)))-      (send (enc (exp h2-0 (mul x-0 x-6)) (pubk b-1))))-    ((recv (enc (exp h2-1 (mul x-2 x-8)) a-2 (pubk b-2)))-      (send-        (enc (exp (gen) x-5) (exp h2-1 (mul x-2 x-5 x-8))-          (exp (gen) x-9) b-2 (pubk a-2))))-    ((send (enc (exp (gen) x-10) a-3 (pubk b-3)))-      (recv-        (enc h2-2 (exp h2-2 x-10)-          (exp h2-1 (mul x-2 x-3 x-8 (rec x-10))) b-3 (pubk a-3)))-      (send (enc (exp h2-1 (mul x-2 x-3 x-8)) (pubk b-3))))-    ((send (enc (exp (gen) z) a-4 (pubk b-4)))-      (recv-        (enc h2-3 (exp h2-3 z) (exp h2-2 (mul x-4 (rec z) x-10)) b-4-          (pubk a-4)))-      (send (enc (exp h2-2 (mul x-4 x-10)) (pubk b-4))))-    ((send (enc (exp (gen) x-12) a-5 (pubk b-5)))-      (recv-        (enc h2-4 (exp h2-4 x-12) (exp h2-3 (mul z x-11 (rec x-12))) b-5-          (pubk a-5))) (send (enc (exp h2-3 (mul z x-11)) (pubk b-5)))))-  (label 114)-  (parent 46)-  (unrealized (1 1) (2 1) (4 1) (5 1) (6 1))-  (comment "3 in cohort - 3 not yet seen"))
tst/dhnsl_basic.tst view
@@ -1,7 +1,7 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"   (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/dhnsl_basic.scm")  (defprotocol dhnsl diffie-hellman
tst/dhnsl_use.tst view
@@ -1,4100 +1,2842 @@ (herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"   (algebra diffie-hellman)) -(comment "CPSA 3.6.6")-(comment "All input read from tst/dhnsl_use.scm")--(defprotocol dhnsl diffie-hellman-  (defrole resp-    (vars (b a name) (x expt) (y rndx) (n text))-    (trace (recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    (uniq-orig n)-    (uniq-gen y)-    (absent (y (exp (gen) x)))-    (comment "Y should be assumed to be freshly chosen per role"))-  (defrole init-    (vars (a b name) (y expt) (x rndx) (n text))-    (trace (send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    (uniq-gen x)-    (comment "X should be assumed to be freshly chosen per role"))-  (comment-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (comment "Initiator point-of-view")-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 0)-  (unrealized (0 1) (0 3))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y-0 x)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))-  (label 1)-  (parent 0)-  (unrealized (0 1) (0 3))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (x rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) (mul x (rec w))) w))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (precur (1 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)-    (0 1) (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) (mul x (rec w))) w))-      (send (cat (exp (gen) (mul x (rec w))) w))))-  (label 2)-  (parent 0)-  (unrealized (1 0))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)-    (enc (exp (gen) x) a (pubk b))-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))-  (label 3)-  (parent 1)-  (unrealized (0 3))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (y-0 x rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) (mul x (rec w))) w))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y-0 x)-  (precur (2 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)-    (0 1) (enc (exp (gen) x) a (pubk b))-    (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (exp (gen) (mul x (rec w))) w))-      (send (cat (exp (gen) (mul x (rec w))) w))))-  (label 4)-  (parent 1)-  (unrealized (2 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (gen) x))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (precur (1 0))-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (gen) x)) (send (cat (gen) x))))-  (label 5)-  (parent 2)-  (unrealized (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))-  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen x-0 y-0)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0)))))-  (label 6)-  (parent 2)-  (unrealized (0 1) (0 3) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) x) (one)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen x)-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))-  (label 7)-  (parent 2)-  (unrealized (1 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y expt) (x x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen x x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 8)-  (parent 2)-  (unrealized (0 1) (0 3) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (b a name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen x y)-  (uniq-orig n)-  (operation encryption-test (displaced 1 2 resp 4)-    (enc n (exp (gen) (mul x y-0))) (0 3))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y))))))-  (label 9)-  (parent 3)-  (unrealized (1 2))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (operation encryption-test (added-listener (exp (gen) (mul x y)))-    (enc n (exp (gen) (mul x y))) (0 3))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))-  (label 10)-  (parent 3)-  (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (gen) x))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y-0 x)-  (precur (2 0))-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (gen) x)) (send (cat (gen) x))))-  (label 11)-  (parent 4)-  (unrealized (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (x y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen x y-0)-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))-  (label 12)-  (parent 4)-  (unrealized (0 1) (0 3) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt)-    (x-0 y-1 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))-  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))-    ((3 1) (2 0)))-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 x-0 y-1)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))-      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-1) b-0 (pubk a-0)))))-  (label 13)-  (parent 4)-  (unrealized (0 1) (0 3) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) x) (one)))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 x)-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))-  (label 14)-  (parent 4)-  (seen 16)-  (unrealized (2 0))-  (comment "2 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))-    ((3 0) (2 0)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 x x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 15)-  (parent 4)-  (unrealized (0 1) (0 3) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) x) (one)))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y-0 x)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))-  (label 16)-  (parent 7)-  (unrealized (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (b a name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x))))))-  (label 17)-  (parent 9)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (y y) (x x) (n n))))-  (origs (n (1 3))))--(defskeleton dhnsl-  (vars (n text) (b a name) (x y rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) (mul y (rec w))) w))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen x y)-  (uniq-orig n)-  (precur (2 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)-    (1 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) (mul y (rec w))) w))-      (send (cat (exp (gen) (mul y (rec w))) w))))-  (label 18)-  (parent 9)-  (unrealized (2 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x y rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) (mul x y (rec w))) w))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x y (rec w))) w))-    (exp (gen) (mul x y)) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) (mul x y (rec w))) w))-      (send (cat (exp (gen) (mul x y (rec w))) w))))-  (label 19)-  (parent 10)-  (unrealized (3 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y expt) (y-0 y-1 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) x) (one)))-  (defstrand resp 2 (b b) (a a) (x x) (y y-1))-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))-    ((3 1) (2 0)))-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 y-1 x)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-1) b (pubk a)))))-  (label 20)-  (parent 14)-  (seen 16)-  (unrealized (2 0))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (b a name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (gen) y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen x y)-  (uniq-orig n)-  (precur (2 0))-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (gen) y)) (send (cat (gen) y))))-  (label 21)-  (parent 18)-  (unrealized (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (b a name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen x y)-  (uniq-orig n)-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))-  (label 22)-  (parent 18)-  (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (b a b-0 a-0 name) (x rndx) (x-0 expt) (y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)) ((3 1) (2 0)))-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen x y y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))-  (label 23)-  (parent 18)-  (unrealized (1 2) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (b a name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x) (mul y (rec x))))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))))-    ((recv (cat (exp (gen) x) (mul y (rec x))))-      (send (cat (exp (gen) x) (mul y (rec x))))))-  (label 24)-  (parent 18)-  (unrealized (1 2) (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (b a a-0 b-0 name) (x y x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)) ((3 0) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen x y x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 25)-  (parent 18)-  (unrealized (1 2) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (gen) (mul x y)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (precur (3 0))-  (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)-    (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))-  (label 26)-  (parent 19)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y)-  (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 27)-  (parent 19)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b b-0 a-0 name) (x expt) (x-0 y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))-  (defstrand resp 2 (b b) (a a) (x x-0) (y y))-  (deflistener (exp (gen) (mul x-0 y)))-  (deflistener (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x-0 y y-0)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x-0 y)))) (send n))-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul x-0 y))) (send (exp (gen) (mul x-0 y))))-    ((recv (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x-0 y (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0)))))-  (label 28)-  (parent 19)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x) y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x)-  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))-  (label 29)-  (parent 19)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (x y x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) x-0) (mul x y (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)) ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) x-0) (mul x y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x y (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 30)-  (parent 19)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (b a name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))-  (label 31)-  (parent 22)-  (unrealized (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (b a name) (y y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x) (mul y (rec x))))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))-    ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen y y-0 x)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)-    (enc (exp (gen) x) a (pubk b))-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))))-    ((recv (cat (exp (gen) x) (mul y (rec x))))-      (send (cat (exp (gen) x) (mul y (rec x)))))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))-  (label 32)-  (parent 24)-  (unrealized (1 2) (2 0))-  (dead)-  (comment "empty cohort"))--(comment "Nothing left to do")--(defprotocol dhnsl diffie-hellman-  (defrole resp-    (vars (b a name) (x expt) (y rndx) (n text))-    (trace (recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    (uniq-orig n)-    (uniq-gen y)-    (absent (y (exp (gen) x)))-    (comment "Y should be assumed to be freshly chosen per role"))-  (defrole init-    (vars (a b name) (y expt) (x rndx) (n text))-    (trace (send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    (uniq-gen x)-    (comment "X should be assumed to be freshly chosen per role"))-  (comment-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x expt) (y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y)-  (uniq-orig n)-  (comment "Responder point-of-view")-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n)))-  (label 33)-  (unrealized (0 2) (0 4))-  (origs (n (0 3)))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))))-  (label 34)-  (parent 33)-  (unrealized (0 4))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x expt) (y rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) (mul y (rec w))) w))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y)-  (uniq-orig n)-  (precur (1 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)-    (0 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) (mul y (rec w))) w))-      (send (cat (exp (gen) (mul y (rec w))) w))))-  (label 35)-  (parent 33)-  (unrealized (1 0))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))-    ((1 4) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 1 2 init 5) n (0 4)-    (enc n (exp (gen) (mul y x-0))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 36)-  (parent 34)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (x x) (y y) (n n))))-  (origs (n (0 3))))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))-    (x x-0))-  (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 4) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 5) n (0 4)-    (enc n (exp (gen) (mul y x))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 37)-  (parent 34)-  (unrealized (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)-    (enc n (exp (gen) (mul y x))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))-  (label 38)-  (parent 34)-  (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x expt) (y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (gen) y))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y)-  (uniq-orig n)-  (precur (1 0))-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (gen) y)) (send (cat (gen) y))))-  (label 39)-  (parent 35)-  (unrealized (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x expt) (y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y)-  (uniq-orig n)-  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))-  (label 40)-  (parent 35)-  (unrealized (1 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))-  (label 41)-  (parent 35)-  (unrealized (0 2) (0 4) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (x expt) (y x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 42)-  (parent 35)-  (unrealized (0 2) (0 4) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-    (exp (gen) (mul y x (rec x-0))) (2 1))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))))-  (label 43)-  (parent 37)-  (unrealized (3 0))-  (comment "6 in cohort - 6 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) (mul y x (rec w))) w))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec w))) w))-    (exp (gen) (mul y x)) (2 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) (mul y x (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec w))) w))))-  (label 44)-  (parent 38)-  (unrealized (3 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))))-  (label 45)-  (parent 40)-  (unrealized (0 4) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (gen) (mul y x (rec x-0))))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test-    (contracted (y-0 y) (x-1 x) (x-2 x-0) (w (mul y x (rec x-0)))) (gen)-    (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (gen) (mul y x (rec x-0))))-      (send (cat (gen) (mul y x (rec x-0))))))-  (label 46)-  (parent 43)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (x x-0 y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul (rec x) x-0 y)) (x x))-  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x x-0 y)-  (uniq-orig n)-  (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x-0 y)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0 y)) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul (rec x) x-0 y)) (pubk b-0)))-      (recv (enc n (exp (gen) (mul x-0 y)))) (send n))-    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))-      (send (cat (exp (gen) y) (mul (rec x) x-0)))))-  (label 47)-  (parent 43)-  (unrealized (2 1) (3 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 b-1 a-1 name) (x expt)-    (y x-0 x-1 y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x-0 (rec x-1)))-    (x x-1))-  (deflistener (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0))))-  (defstrand resp 2 (b b-1) (a a-1) (x x) (y y-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))-    ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x-0 x-1 y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x-1) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul y x-0 (rec x-1))) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x-0 (rec x-1))) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0)))))-    ((recv (enc (exp (gen) x) a-1 (pubk b-1)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b-1 (pubk a-1)))))-  (label 48)-  (parent 43)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y (rec x) x-0)) (x x))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x))))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y (rec x))))-      (send (cat (exp (gen) x-0) (mul y (rec x))))))-  (label 49)-  (parent 43)-  (unrealized (2 1) (3 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))-  (label 50)-  (parent 43)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 a-1 b-1 name) (y x x-0 x-1 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))-  (defstrand init 1 (a a-1) (b b-1) (x x-1))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))-    ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0 x-1)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))-      (send (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1)))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-1)))))-  (label 51)-  (parent 43)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (gen) (mul y x)))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)-    (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))-  (label 52)-  (parent 44)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (x y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y)-  (uniq-orig n)-  (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 53)-  (parent 44)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b b-0 a-0 name) (x expt) (y x-0 y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x-0))-  (deflistener (exp (gen) (mul y x-0)))-  (deflistener (cat (exp (gen) y-0) (mul y x-0 (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)) ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x-0 y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))-    ((recv (cat (exp (gen) y-0) (mul y x-0 (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x-0 (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0)))))-  (label 54)-  (parent 44)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x) y))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))-  (label 55)-  (parent 44)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)) ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x-0) (mul y x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 56)-  (parent 44)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (x y x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul (rec x) y x-0)) (x x))-  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))-  (precedes ((0 1) (1 1)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 2) (0 2))-    ((1 2) (3 0)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 4 1 init 3) (exp (gen) y) (3 0)-    (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul (rec x) y x-0)) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul (rec x) y x-0)) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))-      (send (cat (exp (gen) y) (mul (rec x) x-0)))))-  (label 57)-  (parent 47)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhnsl-  (vars (n text) (a b a-0 b-0 name) (y x y-0 x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y (rec x) x-0)) (x x))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x))))-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 0) (4 0)) ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4))-    ((3 1) (2 1)) ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x y-0 x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) x-0) (3 0)-    (enc (exp (gen) x-0) a (pubk b))-    (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))-      (send (enc (exp (gen) y) (pubk b))))-    ((send (enc (exp (gen) x) a-0 (pubk b-0)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) b-0-          (pubk a-0)))-      (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y (rec x))))-      (send (cat (exp (gen) x-0) (mul y (rec x)))))-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a)))))-  (label 58)-  (parent 49)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(comment "Nothing left to do")--(defprotocol dhns diffie-hellman-  (defrole resp-    (vars (b a name) (x expt) (y rndx) (n text))-    (trace (recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    (uniq-orig n)-    (uniq-gen y)-    (absent (y (exp (gen) x)))-    (comment "Y should be assumed to be freshly chosen per role"))-  (defrole init-    (vars (a b name) (y expt) (x rndx) (n text))-    (trace (send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    (uniq-gen x)-    (comment "X should be assumed to be freshly chosen per role"))-  (comment-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (comment "Initiator point-of-view")-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 59)-  (unrealized (0 1) (0 3))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y-0 x)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))-  (label 60)-  (parent 59)-  (unrealized (0 1) (0 3))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (x rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) (mul x (rec w))) w))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (precur (1 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)-    (0 1) (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) (mul x (rec w))) w))-      (send (cat (exp (gen) (mul x (rec w))) w))))-  (label 61)-  (parent 59)-  (unrealized (1 0))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)-    (enc (exp (gen) x) a (pubk b))-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))-  (label 62)-  (parent 60)-  (unrealized (0 3))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (y-0 x rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) (mul x (rec w))) w))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y-0 x)-  (precur (2 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)-    (0 1) (enc (exp (gen) x) a (pubk b))-    (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))-    ((recv (cat (exp (gen) (mul x (rec w))) w))-      (send (cat (exp (gen) (mul x (rec w))) w))))-  (label 63)-  (parent 60)-  (unrealized (2 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (gen) x))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (privk a) (privk b))-  (uniq-gen x)-  (precur (1 0))-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (gen) x)) (send (cat (gen) x))))-  (label 64)-  (parent 61)-  (unrealized (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))-  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen x-0 y-0)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-0)))))-  (label 65)-  (parent 61)-  (unrealized (0 1) (0 3) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) x) (one)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen x)-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))-  (label 66)-  (parent 61)-  (unrealized (1 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b a-0 b-0 name) (y expt) (x x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen x x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 67)-  (parent 61)-  (unrealized (0 1) (0 3) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen x y)-  (uniq-orig n)-  (operation encryption-test (displaced 1 2 resp 4)-    (enc n (exp (gen) (mul x y-0))) (0 3))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y))))))-  (label 68)-  (parent 62)-  (unrealized (1 2))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (operation encryption-test (added-listener (exp (gen) (mul x y)))-    (enc n (exp (gen) (mul x y))) (0 3))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))-  (label 69)-  (parent 62)-  (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (gen) x))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y-0 x)-  (precur (2 0))-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))-    ((recv (cat (gen) x)) (send (cat (gen) x))))-  (label 70)-  (parent 63)-  (unrealized (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (x y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen x y-0)-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))-    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))-  (label 71)-  (parent 63)-  (unrealized (0 1) (0 3) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt)-    (x-0 y-1 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))-  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))-    ((3 1) (2 0)))-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 x-0 y-1)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a))))-    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))-      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-1) (pubk a-0)))))-  (label 72)-  (parent 63)-  (unrealized (0 1) (0 3) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) x) (one)))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 x)-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))-  (label 73)-  (parent 63)-  (seen 75)-  (unrealized (2 0))-  (comment "2 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))-    ((3 0) (2 0)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 x x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 74)-  (parent 63)-  (unrealized (0 1) (0 3) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (deflistener (cat (exp (gen) x) (one)))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))-  (absent (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y-0 x)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))-  (label 75)-  (parent 66)-  (unrealized (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x))))))-  (label 76)-  (parent 68)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (y y) (x x) (n n))))-  (origs (n (1 3))))--(defskeleton dhns-  (vars (n text) (b a name) (x y rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) (mul y (rec w))) w))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen x y)-  (uniq-orig n)-  (precur (2 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)-    (1 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) (mul y (rec w))) w))-      (send (cat (exp (gen) (mul y (rec w))) w))))-  (label 77)-  (parent 68)-  (unrealized (2 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (x y rndx) (w expt))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) (mul x y (rec w))) w))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x y (rec w))) w))-    (exp (gen) (mul x y)) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) (mul x y (rec w))) w))-      (send (cat (exp (gen) (mul x y (rec w))) w))))-  (label 78)-  (parent 69)-  (unrealized (3 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (y expt) (y-0 y-1 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (deflistener (cat (exp (gen) x) (one)))-  (defstrand resp 2 (b b) (a a) (x x) (y y-1))-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))-    ((3 1) (2 0)))-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (2 0))-  (uniq-gen y-0 y-1 x)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)-    (enc (exp (gen) x) a (pubk b)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-1) (pubk a)))))-  (label 79)-  (parent 73)-  (seen 75)-  (unrealized (2 0))-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhns-  (vars (n text) (b a name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (gen) y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen x y)-  (uniq-orig n)-  (precur (2 0))-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (gen) y)) (send (cat (gen) y))))-  (label 80)-  (parent 77)-  (unrealized (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen x y)-  (uniq-orig n)-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))-  (label 81)-  (parent 77)-  (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (b a b-0 a-0 name) (x rndx) (x-0 expt) (y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)) ((3 1) (2 0)))-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen x y y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a-0)))))-  (label 82)-  (parent 77)-  (unrealized (1 2) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x) (mul y (rec x))))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))))-    ((recv (cat (exp (gen) x) (mul y (rec x))))-      (send (cat (exp (gen) x) (mul y (rec x))))))-  (label 83)-  (parent 77)-  (unrealized (1 2) (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (b a a-0 b-0 name) (x y x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))-    ((2 1) (1 2)) ((3 0) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen x y x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))))-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 84)-  (parent 77)-  (unrealized (1 2) (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (gen) (mul x y)))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (precur (3 0))-  (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)-    (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))-  (label 85)-  (parent 78)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (x y rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y)-  (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 86)-  (parent 78)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 name) (x expt) (x-0 y y-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))-  (defstrand resp 2 (b b) (a a) (x x-0) (y y))-  (deflistener (exp (gen) (mul x-0 y)))-  (deflistener (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x-0 y y-0)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((send (enc (exp (gen) x-0) a (pubk b)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x-0 y)))) (send n))-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul x-0 y))) (send (exp (gen) (mul x-0 y))))-    ((recv (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x-0 y (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-0)))))-  (label 87)-  (parent 78)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x) y))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x)-  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))-  (label 88)-  (parent 78)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b a-0 b-0 name) (x y x-0 rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 2 (b b) (a a) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) x-0) (mul x y (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))-    ((3 1) (2 0)) ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul x y)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) x-0) (mul x y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x y (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 89)-  (parent 78)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a name) (y x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))-    ((2 1) (1 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))-  (label 90)-  (parent 81)-  (unrealized (2 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a name) (y y-0 x rndx))-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x) (mul y (rec x))))-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))-    ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (2 0))-  (uniq-gen y y-0 x)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)-    (enc (exp (gen) x) a (pubk b))-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))))-    ((recv (cat (exp (gen) x) (mul y (rec x))))-      (send (cat (exp (gen) x) (mul y (rec x)))))-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))-  (label 91)-  (parent 83)-  (unrealized (1 2) (2 0))-  (dead)-  (comment "empty cohort"))--(comment "Nothing left to do")--(defprotocol dhns diffie-hellman-  (defrole resp-    (vars (b a name) (x expt) (y rndx) (n text))-    (trace (recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    (uniq-orig n)-    (uniq-gen y)-    (absent (y (exp (gen) x)))-    (comment "Y should be assumed to be freshly chosen per role"))-  (defrole init-    (vars (a b name) (y expt) (x rndx) (n text))-    (trace (send (enc (exp (gen) x) a (pubk b)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    (uniq-gen x)-    (comment "X should be assumed to be freshly chosen per role"))-  (comment-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))--(defskeleton dhns-  (vars (n text) (a b name) (x expt) (y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y)-  (uniq-orig n)-  (comment "Responder point-of-view")-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n)))-  (label 92)-  (unrealized (0 2) (0 4))-  (origs (n (0 3)))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0)))))-  (label 93)-  (parent 92)-  (unrealized (0 4))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (x expt) (y rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) (mul y (rec w))) w))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y)-  (uniq-orig n)-  (precur (1 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)-    (0 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) (mul y (rec w))) w))-      (send (cat (exp (gen) (mul y (rec w))) w))))-  (label 94)-  (parent 92)-  (unrealized (1 0))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton dhns-  (vars (n text) (b a b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 5 (n n) (a a) (b b-0) (y y) (x x))-  (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))-    ((1 4) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 1 2 init 5) n (0 4)-    (enc n (exp (gen) (mul y x-0))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 95)-  (parent 93)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (x x) (y y) (n n))))-  (origs (n (0 3))))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 4) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 5) n (0 4)-    (enc n (exp (gen) (mul y x))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 96)-  (parent 93)-  (unrealized (2 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)-    (enc n (exp (gen) (mul y x))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))-  (label 97)-  (parent 93)-  (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b name) (x expt) (y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (gen) y))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y)-  (uniq-orig n)-  (precur (1 0))-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (gen) y)) (send (cat (gen) y))))-  (label 98)-  (parent 94)-  (unrealized (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b name) (x expt) (y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y)-  (uniq-orig n)-  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))-  (label 99)-  (parent 94)-  (unrealized (1 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))-      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a-0)))))-  (label 100)-  (parent 94)-  (unrealized (0 2) (0 4) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b a-0 b-0 name) (x expt) (y x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))-  (defstrand init 1 (a a-0) (b b-0) (x x-0))-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))-  (label 101)-  (parent 94)-  (unrealized (0 2) (0 4) (1 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-    (exp (gen) (mul y x (rec x-0))) (2 1))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))))-  (label 102)-  (parent 96)-  (unrealized (3 0))-  (comment "6 in cohort - 6 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) (mul y x (rec w))) w))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec w))) w))-    (exp (gen) (mul y x)) (2 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) (mul y x (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec w))) w))))-  (label 103)-  (parent 97)-  (unrealized (3 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0)))))-  (label 104)-  (parent 99)-  (unrealized (0 4))-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (gen) (mul y x (rec x-0))))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test-    (contracted (y-0 y) (x-1 x) (x-2 x-0) (w (mul y x (rec x-0)))) (gen)-    (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (gen) (mul y x (rec x-0))))-      (send (cat (gen) (mul y x (rec x-0))))))-  (label 105)-  (parent 102)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (x x-0 y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul (rec x) x-0 y)) (x x))-  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x x-0 y)-  (uniq-orig n)-  (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x-0 y)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0 y)) (pubk a-0)))-      (send (enc (exp (gen) (mul (rec x) x-0 y)) (pubk b-1)))-      (recv (enc n (exp (gen) (mul x-0 y)))) (send n))-    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))-      (send (cat (exp (gen) y) (mul (rec x) x-0)))))-  (label 106)-  (parent 102)-  (unrealized (2 1) (3 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 b-2 a-1 name) (x expt)-    (y x-0 x-1 y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x-0 (rec x-1)))-    (x x-1))-  (deflistener (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0))))-  (defstrand resp 2 (b b-2) (a a-1) (x x) (y y-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))-    ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x-0 x-1 y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul y x-0 (rec x-1)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x-0 (rec x-1))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0)))))-    ((recv (enc (exp (gen) x) a-1 (pubk b-2)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-1)))))-  (label 107)-  (parent 102)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y (rec x) x-0)) (x x))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x))))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) (pubk a-0)))-      (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y (rec x))))-      (send (cat (exp (gen) x-0) (mul y (rec x))))))-  (label 108)-  (parent 102)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 4 2 init 1) (exp (gen) x-1) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))-  (label 109)-  (parent 102)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 a-1 b-2 name) (y x x-0 x-1 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))-  (defstrand init 1 (a a-1) (b b-2) (x x-1))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1))-    ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0 x-1)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))-      (send (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1)))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-2)))))-  (label 110)-  (parent 102)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (gen) (mul y x)))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen y x)-  (uniq-orig n)-  (precur (3 0))-  (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)-    (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))-  (label 111)-  (parent 103)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (x y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y)-  (uniq-orig n)-  (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 112)-  (parent 103)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 b-1 a-0 name) (x expt) (y x-0 y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (deflistener (exp (gen) (mul y x-0)))-  (deflistener (cat (exp (gen) y-0) (mul y x-0 (rec y-0))))-  (defstrand resp 2 (b b-1) (a a-0) (x x) (y y-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)) ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x-0 y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))-    ((recv (cat (exp (gen) y-0) (mul y x-0 (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x-0 (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-1)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-0)))))-  (label 113)-  (parent 103)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x) y))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))-  (label 114)-  (parent 103)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-1) (x x-0))-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))-    ((2 1) (0 4)) ((3 1) (2 0)) ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x-0) (mul y x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))))-  (label 115)-  (parent 103)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (b a b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 5 (n n) (a a) (b b-0) (y y) (x x))-  (precedes ((0 1) (2 1)) ((0 3) (2 3)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((2 4) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk b) (privk a))-  (precur (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 2 3 init 5) n (0 4)-    (enc n (exp (gen) (mul y x-0))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 116)-  (parent 104)-  (seen 95)-  (unrealized)-  (comment "1 in cohort - 0 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (precedes ((0 1) (2 1)) ((0 1) (3 1)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 4) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 5) n (0 4)-    (enc n (exp (gen) (mul y x))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n)))-  (label 117)-  (parent 104)-  (unrealized (3 1))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (precedes ((0 1) (2 1)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)-    (enc n (exp (gen) (mul y x))))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))-  (label 118)-  (parent 104)-  (unrealized (3 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (x y x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul (rec x) y x-0)) (x x))-  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))-  (precedes ((0 1) (1 1)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 2) (0 2))-    ((1 2) (3 0)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 4 1 init 3) (exp (gen) y) (3 0)-    (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul (rec x) y x-0)) (pubk a-0)))-      (send (enc (exp (gen) (mul (rec x) y x-0)) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))-      (send (cat (exp (gen) y) (mul (rec x) x-0)))))-  (label 119)-  (parent 106)-  (unrealized (2 1) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-    (exp (gen) (mul y x (rec x-0))) (3 1))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec x-0) (rec w))) w))))-  (label 120)-  (parent 117)-  (unrealized (4 0))-  (comment "6 in cohort - 6 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx) (w expt))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) (mul y x (rec w))) w))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul y x (rec w))) w))-    (exp (gen) (mul y x)) (3 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) (mul y x (rec w))) w))-      (send (cat (exp (gen) (mul y x (rec w))) w))))-  (label 121)-  (parent 118)-  (unrealized (4 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (gen) (mul y x (rec x-0))))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test-    (contracted (y-0 y) (x-1 x) (x-2 x-0) (w (mul y x (rec x-0)))) (gen)-    (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (gen) (mul y x (rec x-0))))-      (send (cat (gen) (mul y x (rec x-0))))))-  (label 122)-  (parent 120)-  (unrealized (3 1) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (x x-0 y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul (rec x) x-0 y)) (x x))-  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen x x-0 y)-  (uniq-orig n)-  (operation nonce-test (displaced 5 0 resp 2) (exp (gen) y-0) (4 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x-0 y)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0 y)) (pubk a-0)))-      (send (enc (exp (gen) (mul (rec x) x-0 y)) (pubk b-1)))-      (recv (enc n (exp (gen) (mul x-0 y)))) (send n))-    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))-      (send (cat (exp (gen) y) (mul (rec x) x-0)))))-  (label 123)-  (parent 120)-  (unrealized (3 1) (4 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 b-2 a-1 name) (x expt)-    (y x-0 x-1 y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x-0 (rec x-1)))-    (x x-1))-  (deflistener (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0))))-  (defstrand resp 2 (b b-2) (a a-1) (x x) (y y-0))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)) ((5 1) (4 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x-0 x-1 y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-1) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-1) (exp (gen) (mul y x-0 (rec x-1)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x-0 (rec x-1))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x-0 (rec x-1) (rec y-0)))))-    ((recv (enc (exp (gen) x) a-1 (pubk b-2)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-1)))))-  (label 124)-  (parent 120)-  (unrealized (3 1) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y (rec x) x-0)) (x x))-  (deflistener (cat (exp (gen) x-0) (mul y (rec x))))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 5 2 init 1) (exp (gen) x-1) (4 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul y (rec x) x-0)) (pubk a-0)))-      (send (enc (exp (gen) (mul y (rec x) x-0)) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y (rec x))))-      (send (cat (exp (gen) x-0) (mul y (rec x))))))-  (label 125)-  (parent 120)-  (unrealized (3 1) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y x (rec x-0) (rec x-0))))))-  (label 126)-  (parent 120)-  (unrealized (3 1) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 a-1 b-2 name) (y x x-0 x-1 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))-    (x x-0))-  (deflistener (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))-  (defstrand init 1 (a a-1) (b b-2) (x x-1))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)) ((5 0) (4 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x x-0 x-1)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))-          (pubk a-0)))-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x)))) (send n))-    ((recv (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1))))-      (send (cat (exp (gen) x-1) (mul y x (rec x-0) (rec x-1)))))-    ((send (enc (exp (gen) x-1) a-1 (pubk b-2)))))-  (label 127)-  (parent 120)-  (unrealized (3 1) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (gen) (mul y x)))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (contracted (y-0 y) (x-0 x) (w (mul y x))) (gen)-    (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (gen) (mul y x))) (send (cat (gen) (mul y x)))))-  (label 128)-  (parent 121)-  (unrealized (3 0) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (x y rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) y) x))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen x y)-  (uniq-orig n)-  (operation nonce-test (displaced 5 0 resp 2) (exp (gen) y-0) (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul x y)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 129)-  (parent 121)-  (unrealized (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 b-1 a-0 name) (x expt) (y x-0 y-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (deflistener (exp (gen) (mul y x-0)))-  (deflistener (cat (exp (gen) y-0) (mul y x-0 (rec y-0))))-  (defstrand resp 2 (b b-1) (a a-0) (x x) (y y-0))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x-0 y-0)-  (uniq-orig n)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))-    ((recv (cat (exp (gen) y-0) (mul y x-0 (rec y-0))))-      (send (cat (exp (gen) y-0) (mul y x-0 (rec y-0)))))-    ((recv (enc (exp (gen) x) a-0 (pubk b-1)))-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-0)))))-  (label 130)-  (parent 121)-  (unrealized (3 0) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 name) (y x rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x) y))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x)-  (uniq-orig n)-  (operation nonce-test (displaced 5 2 init 1) (exp (gen) x-0) (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))-  (label 131)-  (parent 121)-  (unrealized (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x-0) (mul y x (rec x-0))))-  (defstrand init 1 (a a-0) (b b-1) (x x-0))-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 0) (4 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen y x x-0)-  (uniq-orig n)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))-  (traces-    ((recv (enc (exp (gen) x) a (pubk b)))-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x) a (pubk b-0)))-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))-    ((recv (cat (exp (gen) x-0) (mul y x (rec x-0))))-      (send (cat (exp (gen) x-0) (mul y x (rec x-0)))))-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))))-  (label 132)-  (parent 121)-  (unrealized (3 0) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton dhns-  (vars (n text) (a b b-0 a-0 b-1 name) (x y x-0 rndx))-  (defstrand resp 5 (n n) (b b) (a a) (x x-0) (y y))-  (deflistener (cat (exp (gen) y) (one)))-  (defstrand init 3 (a a) (b b-0) (y y) (x x-0))-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul (rec x) y x-0)) (x x))-  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))-  (precedes ((0 1) (2 1)) ((0 3) (3 3)) ((1 1) (0 2)) ((2 0) (0 0))-    ((2 2) (1 0)) ((2 2) (4 0)) ((3 0) (4 0)) ((3 4) (0 4))-    ((4 1) (3 1)))-  (absent (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (4 0) (1 0))-  (uniq-gen x y x-0)-  (uniq-orig n)-  (operation nonce-test (displaced 5 2 init 3) (exp (gen) y) (4 0)-    (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-  (traces-    ((recv (enc (exp (gen) x-0) a (pubk b)))-      (send (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (recv (enc (exp (gen) y) (pubk b)))-      (send (enc n (exp (gen) (mul y x-0)))) (recv n))-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))-    ((send (enc (exp (gen) x-0) a (pubk b-0)))-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))-      (send (enc (exp (gen) y) (pubk b-0))))-    ((send (enc (exp (gen) x) a-0 (pubk b-1)))-      (recv-        (enc (exp (gen) x) (exp (gen) (mul (rec x) y x-0)) (pubk a-0)))-      (send (enc (exp (gen) (mul (rec x) y x-0)) (pubk b-1)))-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))-    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))-      (send (cat (exp (gen) y) (mul (rec x) x-0)))))-  (label 133)-  (parent 123)-  (unrealized (3 1) (4 0))+(comment "CPSA 3.6.8")+(comment "All input read from tst/dhnsl_use.scm")++(defprotocol dhnsl diffie-hellman+  (defrole resp+    (vars (b a name) (x expt) (y rndx) (n text))+    (trace (recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    (uniq-orig n)+    (uniq-gen y)+    (absent (y (exp (gen) x)))+    (comment "Y should be assumed to be freshly chosen per role"))+  (defrole init+    (vars (a b name) (y expt) (x rndx) (n text))+    (trace (send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    (uniq-gen x)+    (comment "X should be assumed to be freshly chosen per role"))+  (comment+    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (comment "Initiator point-of-view")+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 0)+  (unrealized (0 1) (0 3))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y-0 x)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)+    (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))+  (label 1)+  (parent 0)+  (unrealized (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (x rndx) (w expt))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) (mul x (rec w))) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+    (0 1) (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul x (rec w))) w))+      (send (cat (exp (gen) (mul x (rec w))) w))))+  (label 2)+  (parent 0)+  (unrealized (1 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)+    (enc (exp (gen) x) a (pubk b))+    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))+  (label 3)+  (parent 1)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (y-0 x rndx) (w expt))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) (mul x (rec w))) w))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y-0 x)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+    (0 1) (enc (exp (gen) x) a (pubk b))+    (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (exp (gen) (mul x (rec w))) w))+      (send (cat (exp (gen) (mul x (rec w))) w))))+  (label 4)+  (parent 1)+  (unrealized (2 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (gen) x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (gen) x)) (send (cat (gen) x))))+  (label 5)+  (parent 2)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))+  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))+  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen x-0 y-0)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+  (traces+    ((send (enc (exp (gen) x-0) a (pubk b)))+      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))+    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))+      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))+    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0)))))+  (label 6)+  (parent 2)+  (unrealized (0 1) (0 3) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) x) (one)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen x)+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+  (label 7)+  (parent 2)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (y expt) (x x-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 8)+  (parent 2)+  (unrealized (0 1) (0 3) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (b a name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen x y)+  (uniq-orig n)+  (operation encryption-test (displaced 1 2 resp 4)+    (enc n (exp (gen) (mul x y-0))) (0 3))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y))))))+  (label 9)+  (parent 3)+  (unrealized (1 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation encryption-test (added-listener (exp (gen) (mul x y)))+    (enc n (exp (gen) (mul x y))) (0 3))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+  (label 10)+  (parent 3)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (gen) x))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y-0 x)+  (precur (2 0))+  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (gen) x)) (send (cat (gen) x))))+  (label 11)+  (parent 4)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (x y-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen x y-0)+  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))+  (label 12)+  (parent 4)+  (unrealized (0 1) (0 3) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt)+    (x-0 y-1 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))+  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))+  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))+  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 1) (2 0)))+  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 x-0 y-1)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))+  (traces+    ((send (enc (exp (gen) x-0) a (pubk b)))+      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))+    ((recv (enc (exp (gen) x-0) a (pubk b)))+      (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))+      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))+    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))+      (send (enc (exp (gen) x) (exp (gen) y-1) b-0 (pubk a-0)))))+  (label 13)+  (parent 4)+  (unrealized (0 1) (0 3) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) x) (one)))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 x)+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+  (label 14)+  (parent 4)+  (seen 16)+  (unrealized (2 0))+  (comment "2 in cohort - 1 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 0) (2 0)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 15)+  (parent 4)+  (unrealized (0 1) (0 3) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) x) (one)))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y-0 x)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)+    (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))+  (label 16)+  (parent 7)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (b a name) (y x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)+    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x))))))+  (label 17)+  (parent 9)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (y y) (x x) (n n))))+  (origs (n (1 3))))++(defskeleton dhnsl+  (vars (n text) (b a name) (x y rndx) (w expt))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) (mul y (rec w))) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen x y)+  (uniq-orig n)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+    (1 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul y (rec w))) w))+      (send (cat (exp (gen) (mul y (rec w))) w))))+  (label 18)+  (parent 9)+  (unrealized (2 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 19)+  (parent 10)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 20)+  (parent 10)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y expt) (y-0 y-1 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) x) (one)))+  (defstrand resp 2 (b b) (a a) (x x) (y y-1))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 1) (2 0)))+  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 y-1 x)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+    (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-1) b (pubk a)))))+  (label 21)+  (parent 14)+  (seen 16)+  (unrealized (2 0))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (b a name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (gen) y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen x y)+  (uniq-orig n)+  (precur (2 0))+  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (gen) y)) (send (cat (gen) y))))+  (label 22)+  (parent 18)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (b a name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen x y)+  (uniq-orig n)+  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+  (label 23)+  (parent 18)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (b a b-0 a-0 name) (x rndx) (x-0 expt) (y y-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)) ((3 1) (2 0)))+  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen x y y-0)+  (uniq-orig n)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))+  (label 24)+  (parent 18)+  (unrealized (1 2) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (b a name) (y x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x) (mul y (rec x))))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) (mul y (rec x))))+      (send (cat (exp (gen) x) (mul y (rec x))))))+  (label 25)+  (parent 18)+  (unrealized (1 2) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (b a a-0 b-0 name) (x y x-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)) ((3 0) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen x y x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))+      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 26)+  (parent 18)+  (unrealized (1 2) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (b a name) (y x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)+    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+  (label 27)+  (parent 23)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (b a name) (y y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x) (mul y (rec x))))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))+    ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))+  (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen y y-0 x)+  (uniq-orig n)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+    (enc (exp (gen) x) a (pubk b))+    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) (mul y (rec x))))+      (send (cat (exp (gen) x) (mul y (rec x)))))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))+  (label 28)+  (parent 25)+  (unrealized (1 2) (2 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhnsl diffie-hellman+  (defrole resp+    (vars (b a name) (x expt) (y rndx) (n text))+    (trace (recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    (uniq-orig n)+    (uniq-gen y)+    (absent (y (exp (gen) x)))+    (comment "Y should be assumed to be freshly chosen per role"))+  (defrole init+    (vars (a b name) (y expt) (x rndx) (n text))+    (trace (send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    (uniq-gen x)+    (comment "X should be assumed to be freshly chosen per role"))+  (comment+    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x expt) (y rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (uniq-orig n)+  (comment "Responder point-of-view")+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n)))+  (label 29)+  (unrealized (0 2) (0 4))+  (origs (n (0 3)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)+    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))))+  (label 30)+  (parent 29)+  (unrealized (0 4))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x expt) (y rndx) (w expt))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) (mul y (rec w))) w))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (uniq-orig n)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+    (0 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) (mul y (rec w))) w))+      (send (cat (exp (gen) (mul y (rec w))) w))))+  (label 31)+  (parent 29)+  (unrealized (1 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))+    ((1 4) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 1 2 init 5) n (0 4)+    (enc n (exp (gen) (mul y x-0))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 32)+  (parent 30)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (x x) (y y) (n n))))+  (origs (n (0 3))))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))+    (x x-0))+  (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 4) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 5) n (0 4)+    (enc n (exp (gen) (mul y x))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 33)+  (parent 30)+  (unrealized (2 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))+    ((2 1) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)+    (enc n (exp (gen) (mul y x))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))+  (label 34)+  (parent 30)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x expt) (y rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (gen) y))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (uniq-orig n)+  (precur (1 0))+  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (gen) y)) (send (cat (gen) y))))+  (label 35)+  (parent 31)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (x expt) (y rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y)+  (uniq-orig n)+  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+  (label 36)+  (parent 31)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhnsl+  (vars (n text) (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y y-0)+  (uniq-orig n)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))+  (label 37)+  (parent 31)+  (unrealized (0 2) (0 4) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (x expt) (y x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))+      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 38)+  (parent 31)+  (unrealized (0 2) (0 4) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul y x)) x-0))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x)) x-0))+    (exp (gen) (mul y x (rec x-0))) (2 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul y x)) x-0))+      (send (cat (exp (gen) (mul y x)) x-0))))+  (label 39)+  (parent 33)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul y (rec x-0))) x))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec x-0))) x))+    (exp (gen) (mul y x (rec x-0))) (2 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul y (rec x-0))) x))+      (send (cat (exp (gen) (mul y (rec x-0))) x))))+  (label 40)+  (parent 33)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul x (rec x-0))) y))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec x-0))) y))+    (exp (gen) (mul y x (rec x-0))) (2 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul x (rec x-0))) y))+      (send (cat (exp (gen) (mul x (rec x-0))) y))))+  (label 41)+  (parent 33)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+    ((2 1) (0 4)) ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul y x)) (2 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 42)+  (parent 34)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+    ((2 1) (0 4)) ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul y x)) (2 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 43)+  (parent 34)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhnsl+  (vars (n text) (a b name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b) (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)+    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))))+  (label 44)+  (parent 36)+  (unrealized (0 4) (1 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhns diffie-hellman+  (defrole resp+    (vars (b a name) (x expt) (y rndx) (n text))+    (trace (recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    (uniq-orig n)+    (uniq-gen y)+    (absent (y (exp (gen) x)))+    (comment "Y should be assumed to be freshly chosen per role"))+  (defrole init+    (vars (a b name) (y expt) (x rndx) (n text))+    (trace (send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    (uniq-gen x)+    (comment "X should be assumed to be freshly chosen per role"))+  (comment+    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (comment "Initiator point-of-view")+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 45)+  (unrealized (0 1) (0 3))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y-0 x)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)+    (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))+  (label 46)+  (parent 45)+  (unrealized (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (x rndx) (w expt))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) (mul x (rec w))) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+    (0 1) (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul x (rec w))) w))+      (send (cat (exp (gen) (mul x (rec w))) w))))+  (label 47)+  (parent 45)+  (unrealized (1 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)+    (enc (exp (gen) x) a (pubk b))+    (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))+  (label 48)+  (parent 46)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (y-0 x rndx) (w expt))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) (mul x (rec w))) w))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y-0 x)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+    (0 1) (enc (exp (gen) x) a (pubk b))+    (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))+    ((recv (cat (exp (gen) (mul x (rec w))) w))+      (send (cat (exp (gen) (mul x (rec w))) w))))+  (label 49)+  (parent 46)+  (unrealized (2 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (gen) x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (gen) x)) (send (cat (gen) x))))+  (label 50)+  (parent 47)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))+  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))+  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen x-0 y-0)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+  (traces+    ((send (enc (exp (gen) x-0) a (pubk b)))+      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))+    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))+      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))+    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-0)))))+  (label 51)+  (parent 47)+  (unrealized (0 1) (0 3) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) x) (one)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen x)+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+  (label 52)+  (parent 47)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b a-0 b-0 name) (y expt) (x x-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 53)+  (parent 47)+  (unrealized (0 1) (0 3) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (b a name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen x y)+  (uniq-orig n)+  (operation encryption-test (displaced 1 2 resp 4)+    (enc n (exp (gen) (mul x y-0))) (0 3))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y))))))+  (label 54)+  (parent 48)+  (unrealized (1 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation encryption-test (added-listener (exp (gen) (mul x y)))+    (enc n (exp (gen) (mul x y))) (0 3))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+  (label 55)+  (parent 48)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (gen) x))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y-0 x)+  (precur (2 0))+  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))+    ((recv (cat (gen) x)) (send (cat (gen) x))))+  (label 56)+  (parent 49)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (x y-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen x y-0)+  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))+    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))+      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))+  (label 57)+  (parent 49)+  (unrealized (0 1) (0 3) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt)+    (x-0 y-1 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))+  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))+  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))+  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 1) (2 0)))+  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 x-0 y-1)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))+  (traces+    ((send (enc (exp (gen) x-0) a (pubk b)))+      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))+    ((recv (enc (exp (gen) x-0) a (pubk b)))+      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a))))+    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))+      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))+    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))+      (send (enc (exp (gen) x) (exp (gen) y-1) (pubk a-0)))))+  (label 58)+  (parent 49)+  (unrealized (0 1) (0 3) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) x) (one)))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 x)+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+  (label 59)+  (parent 49)+  (seen 61)+  (unrealized (2 0))+  (comment "2 in cohort - 1 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 0) (2 0)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 60)+  (parent 49)+  (unrealized (0 1) (0 3) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (deflistener (cat (exp (gen) x) (one)))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+  (absent (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y-0 x)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)+    (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))+  (label 61)+  (parent 52)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (b a name) (y x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)+    (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x))))))+  (label 62)+  (parent 54)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (y y) (x x) (n n))))+  (origs (n (1 3))))++(defskeleton dhns+  (vars (n text) (b a name) (x y rndx) (w expt))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) (mul y (rec w))) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen x y)+  (uniq-orig n)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+    (1 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) (mul y (rec w))) w))+      (send (cat (exp (gen) (mul y (rec w))) w))))+  (label 63)+  (parent 54)+  (unrealized (2 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 64)+  (parent 55)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 65)+  (parent 55)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (y expt) (y-0 y-1 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (deflistener (cat (exp (gen) x) (one)))+  (defstrand resp 2 (b b) (a a) (x x) (y y-1))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 1) (2 0)))+  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (2 0))+  (uniq-gen y-0 y-1 x)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+    (enc (exp (gen) x) a (pubk b)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-1) (pubk a)))))+  (label 66)+  (parent 59)+  (seen 61)+  (unrealized (2 0))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhns+  (vars (n text) (b a name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (gen) y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen x y)+  (uniq-orig n)+  (precur (2 0))+  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (gen) y)) (send (cat (gen) y))))+  (label 67)+  (parent 63)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (b a name) (x y rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen x y)+  (uniq-orig n)+  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+  (label 68)+  (parent 63)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+  (vars (n text) (b a b-0 a-0 name) (x rndx) (x-0 expt) (y y-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)) ((3 1) (2 0)))+  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen x y y-0)+  (uniq-orig n)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a-0)))))+  (label 69)+  (parent 63)+  (unrealized (1 2) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (b a name) (y x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x) (mul y (rec x))))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) (mul y (rec x))))+      (send (cat (exp (gen) x) (mul y (rec x))))))+  (label 70)+  (parent 63)+  (unrealized (1 2) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+  (vars (n text) (b a a-0 b-0 name) (x y x-0 rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))+    ((2 1) (1 2)) ((3 0) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen x y x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul x y)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))))+    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))+      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 71)+  (parent 63)+  (unrealized (1 2) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (b a name) (y x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))+    ((2 1) (1 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)+    (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+  (label 72)+  (parent 68)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (b a name) (y y-0 x rndx))+  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))+  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x) (mul y (rec x))))+  (defstrand resp 2 (b b) (a a) (x x) (y y-0))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))+    ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))+  (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (2 0))+  (uniq-gen y y-0 x)+  (uniq-orig n)+  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)+    (enc (exp (gen) x) a (pubk b))+    (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))))+    ((recv (cat (exp (gen) x) (mul y (rec x))))+      (send (cat (exp (gen) x) (mul y (rec x)))))+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))+  (label 73)+  (parent 70)+  (unrealized (1 2) (2 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol dhns diffie-hellman+  (defrole resp+    (vars (b a name) (x expt) (y rndx) (n text))+    (trace (recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    (uniq-orig n)+    (uniq-gen y)+    (absent (y (exp (gen) x)))+    (comment "Y should be assumed to be freshly chosen per role"))+  (defrole init+    (vars (a b name) (y expt) (x rndx) (n text))+    (trace (send (enc (exp (gen) x) a (pubk b)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    (uniq-gen x)+    (comment "X should be assumed to be freshly chosen per role"))+  (comment+    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))++(defskeleton dhns+  (vars (n text) (a b name) (x expt) (y rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (uniq-orig n)+  (comment "Responder point-of-view")+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n)))+  (label 74)+  (unrealized (0 2) (0 4))+  (origs (n (0 3)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)+    (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0)))))+  (label 75)+  (parent 74)+  (unrealized (0 4))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (x expt) (y rndx) (w expt))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) (mul y (rec w))) w))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (uniq-orig n)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)+    (0 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) (mul y (rec w))) w))+      (send (cat (exp (gen) (mul y (rec w))) w))))+  (label 76)+  (parent 74)+  (unrealized (1 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton dhns+  (vars (n text) (b a b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 5 (n n) (a a) (b b-0) (y y) (x x))+  (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))+    ((1 4) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 1 2 init 5) n (0 4)+    (enc n (exp (gen) (mul y x-0))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 77)+  (parent 75)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (x x) (y y) (n n))))+  (origs (n (0 3))))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 4) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 5) n (0 4)+    (enc n (exp (gen) (mul y x))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 78)+  (parent 75)+  (unrealized (2 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))+    ((2 1) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)+    (enc n (exp (gen) (mul y x))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))+  (label 79)+  (parent 75)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b name) (x expt) (y rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (gen) y))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (uniq-orig n)+  (precur (1 0))+  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (gen) y)) (send (cat (gen) y))))+  (label 80)+  (parent 76)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b name) (x expt) (y rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y)+  (uniq-orig n)+  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))+  (label 81)+  (parent 76)+  (unrealized (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))+  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y y-0)+  (uniq-orig n)+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))+      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))+    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))+      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a-0)))))+  (label 82)+  (parent 76)+  (unrealized (0 2) (0 4) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b a-0 b-0 name) (x expt) (y x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))+  (defstrand init 1 (a a-0) (b b-0) (x x-0))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul x y)))) (recv n))+    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))+      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))+  (label 83)+  (parent 76)+  (unrealized (0 2) (0 4) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul y x)) x-0))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x)) x-0))+    (exp (gen) (mul y x (rec x-0))) (2 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul y x)) x-0))+      (send (cat (exp (gen) (mul y x)) x-0))))+  (label 84)+  (parent 78)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul y (rec x-0))) x))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec x-0))) x))+    (exp (gen) (mul y x (rec x-0))) (2 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul y (rec x-0))) x))+      (send (cat (exp (gen) (mul y (rec x-0))) x))))+  (label 85)+  (parent 78)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul x (rec x-0))) y))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))+    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec x-0))) y))+    (exp (gen) (mul y x (rec x-0))) (2 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul x (rec x-0))) y))+      (send (cat (exp (gen) (mul x (rec x-0))) y))))+  (label 86)+  (parent 78)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+    ((2 1) (0 4)) ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul y x)) (2 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 87)+  (parent 79)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))+    ((2 1) (0 4)) ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul y x)) (2 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 88)+  (parent 79)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)+    (enc (exp (gen) x) (exp (gen) y) (pubk a)))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0)))))+  (label 89)+  (parent 81)+  (unrealized (0 4))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhns+  (vars (n text) (b a b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 5 (n n) (a a) (b b-0) (y y) (x x))+  (precedes ((0 1) (2 1)) ((0 3) (2 3)) ((1 1) (0 2)) ((2 0) (0 0))+    ((2 2) (1 0)) ((2 4) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk b) (privk a))+  (precur (1 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (displaced 2 3 init 5) n (0 4)+    (enc n (exp (gen) (mul y x-0))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 90)+  (parent 89)+  (seen 77)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (precedes ((0 1) (2 1)) ((0 1) (3 1)) ((0 3) (3 3)) ((1 1) (0 2))+    ((2 0) (0 0)) ((2 2) (1 0)) ((3 4) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test (added-strand init 5) n (0 4)+    (enc n (exp (gen) (mul y x))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n)))+  (label 91)+  (parent 89)+  (unrealized (3 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (precedes ((0 1) (2 1)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))+    ((2 2) (1 0)) ((3 1) (0 4)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)+    (enc n (exp (gen) (mul y x))))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))+  (label 92)+  (parent 89)+  (unrealized (3 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul y x)) x-0))+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x)) x-0))+    (exp (gen) (mul y x (rec x-0))) (3 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul y x)) x-0))+      (send (cat (exp (gen) (mul y x)) x-0))))+  (label 93)+  (parent 91)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul y (rec x-0))) x))+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul y (rec x-0))) x))+    (exp (gen) (mul y x (rec x-0))) (3 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul y (rec x-0))) x))+      (send (cat (exp (gen) (mul y (rec x-0))) x))))+  (label 94)+  (parent 91)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))+    (x x-0))+  (deflistener (cat (exp (gen) (mul x (rec x-0))) y))+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))+    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x x-0)+  (uniq-orig n)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec x-0))) y))+    (exp (gen) (mul y x (rec x-0))) (3 1))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))+      (recv+        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))+          (pubk a-0)))+      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))+      (recv (enc n (exp (gen) (mul y x)))) (send n))+    ((recv (cat (exp (gen) (mul x (rec x-0))) y))+      (send (cat (exp (gen) (mul x (rec x-0))) y))))+  (label 95)+  (parent 91)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul y x)) (3 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 96)+  (parent 92)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton dhns+  (vars (n text) (a b b-0 name) (y x rndx))+  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))+  (deflistener (cat (exp (gen) y) (one)))+  (defstrand init 3 (a a) (b b-0) (y y) (x x))+  (deflistener (exp (gen) (mul y x)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))+    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (precur (1 0))+  (uniq-gen y x)+  (uniq-orig n)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul y x)) (3 0))+  (traces+    ((recv (enc (exp (gen) x) a (pubk b)))+      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (recv (enc (exp (gen) y) (pubk b)))+      (send (enc n (exp (gen) (mul y x)))) (recv n))+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))+    ((send (enc (exp (gen) x) a (pubk b-0)))+      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))+      (send (enc (exp (gen) y) (pubk b-0))))+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 97)+  (parent 92)+  (unrealized (4 0))   (dead)   (comment "empty cohort")) 
+ tst/doorsep.scm view
@@ -0,0 +1,43 @@+(herald doorsep (comment "Door Simple Example Protocol"))++(defprotocol doorsep basic+  (defrole person+    (vars (p d akey) (k skey) (t text))+    (trace+     (send (enc (enc k (invk p)) d))+     (recv (enc t k))+     (send t))+    (uniq-orig k)+    )+  (defrole door+    (vars (p d akey) (k skey) (t text))+    (trace+     (recv (enc (enc k (invk p)) d))+     (send (enc t k))+     (recv t))+    )+  (defrule trust+    (forall ((z strd) (p d akey) (k skey))+	    (implies+	     (and (p "person" z 1)+		  (p "person" "p" z p)+		  (p "person" "d" z d)+		  (p "person" "k" z k)+		  (fact trust p))+	     (and (non (invk d))+		  (uniq k))))))++(defskeleton doorsep+  (vars (p akey) (t text))+  (defstrand door 3 (p p) (t t))+  (non-orig (invk p))+  (uniq-orig t)+  (facts (trust p))+  (comment "Analyze from the door's perspective"))++(defskeleton doorsep+  (vars (p akey) (t text))+  (defstrand door 3 (p p) (t t))+  (non-orig (invk p))+  (uniq-orig t)+  (comment "Analyze from the door's perspective when we don't trust p"))
+ tst/doorsep.tst view
@@ -0,0 +1,152 @@+(herald doorsep (comment "Door Simple Example Protocol"))++(comment "CPSA 3.6.8")+(comment "All input read from tst/doorsep.scm")++(defprotocol doorsep basic+  (defrole person+    (vars (p d akey) (k skey) (t text))+    (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))+    (uniq-orig k))+  (defrole door+    (vars (p d akey) (k skey) (t text))+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+  (defrule trust+    (forall ((z strd) (p d akey) (k skey))+      (implies+        (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)+          (p "person" "k" z k) (fact trust p))+        (and (non (invk d)) (uniq k))))))++(defskeleton doorsep+  (vars (t text) (k skey) (p d akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (non-orig (invk p))+  (uniq-orig t)+  (facts (trust p))+  (comment "Analyze from the door's perspective")+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+  (label 0)+  (unrealized (0 0))+  (origs (t (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+  (vars (t text) (k skey) (p d d-0 akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (defstrand person 1 (k k) (p p) (d d-0))+  (precedes ((1 0) (0 0)))+  (non-orig (invk p) (invk d-0))+  (uniq-orig t k)+  (facts (trust p))+  (rule trust)+  (operation encryption-test (added-strand person 1) (enc k (invk p))+    (0 0))+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+    ((send (enc (enc k (invk p)) d-0))))+  (label 1)+  (parent 0)+  (unrealized (0 0) (0 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+  (vars (t text) (k skey) (p d akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (defstrand person 1 (k k) (p p) (d d))+  (precedes ((1 0) (0 0)))+  (non-orig (invk p) (invk d))+  (uniq-orig t k)+  (facts (trust p))+  (operation encryption-test (contracted (d-0 d)) (enc k (invk p)) (0 0)+    (enc (enc k (invk p)) d))+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+    ((send (enc (enc k (invk p)) d))))+  (label 2)+  (parent 1)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton doorsep+  (vars (t text) (k skey) (p d akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (defstrand person 3 (t t) (k k) (p p) (d d))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (non-orig (invk p) (invk d))+  (uniq-orig t k)+  (facts (trust p))+  (operation nonce-test (displaced 1 2 person 3) t (0 2) (enc t k))+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+    ((send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))+  (label 3)+  (parent 2)+  (unrealized)+  (shape)+  (maps ((0) ((p p) (t t) (d d) (k k))))+  (origs (k (1 0)) (t (0 1))))++(defskeleton doorsep+  (vars (t text) (k skey) (p d akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (defstrand person 1 (k k) (p p) (d d))+  (deflistener k)+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 2)))+  (non-orig (invk p) (invk d))+  (uniq-orig t k)+  (facts (trust p))+  (operation nonce-test (added-listener k) t (0 2) (enc t k))+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+    ((send (enc (enc k (invk p)) d))) ((recv k) (send k)))+  (label 4)+  (parent 2)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol doorsep basic+  (defrole person+    (vars (p d akey) (k skey) (t text))+    (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))+    (uniq-orig k))+  (defrole door+    (vars (p d akey) (k skey) (t text))+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+  (defrule trust+    (forall ((z strd) (p d akey) (k skey))+      (implies+        (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)+          (p "person" "k" z k) (fact trust p))+        (and (non (invk d)) (uniq k))))))++(defskeleton doorsep+  (vars (t text) (k skey) (p d akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (non-orig (invk p))+  (uniq-orig t)+  (comment "Analyze from the door's perspective when we don't trust p")+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))+  (label 5)+  (unrealized (0 0))+  (origs (t (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+  (vars (t text) (k skey) (p d d-0 akey))+  (defstrand door 3 (t t) (k k) (p p) (d d))+  (defstrand person 1 (k k) (p p) (d d-0))+  (precedes ((1 0) (0 0)))+  (non-orig (invk p))+  (uniq-orig t k)+  (operation encryption-test (added-strand person 1) (enc k (invk p))+    (0 0))+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))+    ((send (enc (enc k (invk p)) d-0))))+  (label 6)+  (parent 5)+  (unrealized)+  (shape)+  (maps ((0) ((p p) (t t) (d d) (k k))))+  (origs (k (1 0)) (t (0 1))))++(comment "Nothing left to do")
+ tst/doorsep2invk.scm view
@@ -0,0 +1,27 @@+(herald doorsep2invk (comment "Door Simple Example Protocol"))++(defprotocol doorsep basic+  (defrole init+    (vars (self peer akey) (skey skey) (data text))+    (trace (send (enc (enc skey (invk self)) peer))+      (recv (enc data skey)) (send data))+    (uniq-orig skey))+  (defrole resp+    (vars (self peer akey) (skey skey) (data text))+    (trace (recv (enc (enc skey (invk peer)) self))+      (send (enc data skey)) (recv data))+    (uniq-orig data))+  (comment "Doorsep's protocol using unnamed asymmetric keys"))++(defgoal doorsep+  (forall+    ((text+0 text) (skey+0 skey) (akey+1 akey+0 akey+3 akey)+     (z z-0 strd))+    (implies+      (and (p "resp" z 3) (p "init" z-0 1) (p "resp" "data" z text+0)+        (p "resp" "skey" z skey+0) (p "resp" "self" z akey+1)+        (p "resp" "peer" z (invk akey+3)) (p "init" "skey" z-0 skey+0)+        (p "init" "self" z-0 (invk akey+3)) (p "init" "peer" z-0 akey+0)+        (prec z-0 0 z 0) (non akey+3) (non (invk akey+0))+        (uniq-at skey+0 z-0 0) (uniq-at text+0 z 1))+      (and))))
+ tst/doorsep2invk.tst view
@@ -0,0 +1,111 @@+(herald doorsep2invk (comment "Door Simple Example Protocol"))++(comment "CPSA 3.6.8")+(comment "All input read from tst/doorsep2invk.scm")++(defprotocol doorsep basic+  (defrole init+    (vars (self peer akey) (skey skey) (data text))+    (trace (send (enc (enc skey (invk self)) peer))+      (recv (enc data skey)) (send data))+    (uniq-orig skey))+  (defrole resp+    (vars (self peer akey) (skey skey) (data text))+    (trace (recv (enc (enc skey (invk peer)) self))+      (send (enc data skey)) (recv data))+    (uniq-orig data))+  (comment "Doorsep's protocol using unnamed asymmetric keys"))++(defskeleton doorsep+  (vars (text+0 text) (skey+0 skey) (akey+1 akey+0 akey+3 akey))+  (defstrand init 1 (skey skey+0) (self (invk akey+3)) (peer akey+0))+  (defstrand resp 3 (data text+0) (skey skey+0) (self akey+1)+    (peer (invk akey+3)))+  (precedes ((0 0) (1 0)))+  (non-orig akey+3 (invk akey+0))+  (uniq-orig text+0 skey+0)+  (goals+    (forall+      ((text+0 text) (skey+0 skey) (akey+1 akey+0 akey+3 akey)+        (z z-0 strd))+      (implies+        (and (p "resp" z 3) (p "init" z-0 1) (p "resp" "data" z text+0)+          (p "resp" "skey" z skey+0) (p "resp" "self" z akey+1)+          (p "resp" "peer" z (invk akey+3)) (p "init" "skey" z-0 skey+0)+          (p "init" "self" z-0 (invk akey+3))+          (p "init" "peer" z-0 akey+0) (prec z-0 0 z 0) (non akey+3)+          (non (invk akey+0)) (uniq-at skey+0 z-0 0)+          (uniq-at text+0 z 1)) (and))))+  (traces ((send (enc (enc skey+0 akey+3) akey+0)))+    ((recv (enc (enc skey+0 akey+3) akey+1)) (send (enc text+0 skey+0))+      (recv text+0)))+  (label 0)+  (unrealized (1 0) (1 2))+  (origs (text+0 (1 1)) (skey+0 (0 0)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton doorsep+  (vars (text+0 text) (skey+0 skey) (akey+0 akey+3 akey))+  (defstrand init 1 (skey skey+0) (self (invk akey+3)) (peer akey+0))+  (defstrand resp 3 (data text+0) (skey skey+0) (self akey+0)+    (peer (invk akey+3)))+  (precedes ((0 0) (1 0)))+  (non-orig akey+3 (invk akey+0))+  (uniq-orig text+0 skey+0)+  (operation encryption-test (contracted (akey+1 akey+0))+    (enc skey+0 akey+3) (1 0) (enc (enc skey+0 akey+3) akey+0))+  (traces ((send (enc (enc skey+0 akey+3) akey+0)))+    ((recv (enc (enc skey+0 akey+3) akey+0)) (send (enc text+0 skey+0))+      (recv text+0)))+  (label 1)+  (parent 0)+  (unrealized (1 2))+  (origs (text+0 (1 1)) (skey+0 (0 0)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton doorsep+  (vars (text+0 text) (skey+0 skey) (self peer akey))+  (defstrand resp 3 (data text+0) (skey skey+0) (self peer) (peer self))+  (defstrand init 3 (data text+0) (skey skey+0) (self self) (peer peer))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (non-orig (invk self) (invk peer))+  (uniq-orig text+0 skey+0)+  (operation nonce-test (displaced 0 2 init 3) text+0 (1 2)+    (enc text+0 skey+0))+  (traces+    ((recv (enc (enc skey+0 (invk self)) peer))+      (send (enc text+0 skey+0)) (recv text+0))+    ((send (enc (enc skey+0 (invk self)) peer))+      (recv (enc text+0 skey+0)) (send text+0)))+  (label 2)+  (parent 1)+  (unrealized)+  (shape)+  (satisfies yes)+  (maps+    ((1 0)+      ((text+0 text+0) (skey+0 skey+0) (akey+1 peer) (akey+0 peer)+        (akey+3 (invk self)))))+  (origs (skey+0 (1 0)) (text+0 (0 1))))++(defskeleton doorsep+  (vars (text+0 text) (skey+0 skey) (akey+0 akey+3 akey))+  (defstrand init 1 (skey skey+0) (self (invk akey+3)) (peer akey+0))+  (defstrand resp 3 (data text+0) (skey skey+0) (self akey+0)+    (peer (invk akey+3)))+  (deflistener skey+0)+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((2 1) (1 2)))+  (non-orig akey+3 (invk akey+0))+  (uniq-orig text+0 skey+0)+  (operation nonce-test (added-listener skey+0) text+0 (1 2)+    (enc text+0 skey+0))+  (traces ((send (enc (enc skey+0 akey+3) akey+0)))+    ((recv (enc (enc skey+0 akey+3) akey+0)) (send (enc text+0 skey+0))+      (recv text+0)) ((recv skey+0) (send skey+0)))+  (label 3)+  (parent 1)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/eadh_um.scm view
@@ -0,0 +1,62 @@+(herald "Unified model (UM)" (bound 20) (limit 8000) (algebra diffie-hellman))++(defprotocol eadh-um diffie-hellman+  (defrole init+    (vars (l e rndx) (ll ee expt) (self peer name) (n data))+    (trace+     (recv (enc "cert" (exp (gen) l) self (privk self)))+     (recv (enc "cert" (exp (gen) ll) peer (privk peer)))+     (send (exp (gen) e))+     (recv (exp (gen) ee))+     (send (enc n (hash (exp (gen) (mul ll l)) (exp (gen) (mul ee e)))))+     (recv n))+    (uniq-gen e)+    (uniq-orig n)+    (neq (ee (one)))+    (fn-of ("principal-of" (self l)))+    (fn-of ("privdh-of" (l self)))+    )+  (defrole resp+    (vars (l e rndx) (ll ee expt) (self peer name) (n data))+    (trace+     (recv (enc "cert" (exp (gen) l) self (privk self)))+     (recv (enc "cert" (exp (gen) ll) peer (privk peer)))+     (send (exp (gen) e))+     (recv (exp (gen) ee))+     (recv (enc n (hash (exp (gen) (mul ll l)) (exp (gen) (mul ee e)))))+     (send n))+    (uniq-gen e)+    (neq (ee (one)))+    (fn-of ("principal-of" (self l)))+    (fn-of ("privdh-of" (l self)))+    )+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (enc "cert" (exp (gen) l) self (privk self)))+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (self l)))+    (fn-of ("privdh-of" (l self)))+    )+  )++;; Explicit authentication: init's point of view+ (defskeleton eadh-um+  (vars (n data) (lA eA lB rndx) (A B name))+  (defstrand init 6 (n n) (e eA) (l lA) (self A) (peer B))+  (defstrand ltx-gen 1 (self B) (l lB))+  (non-orig lA lB)+  (non-orig (privk A) (privk B))+  (comment "Explicit authentication")+  )++;; Explicit authentication: init's point of view+ (defskeleton eadh-um+  (vars (n data) (lA eA lB rndx) (A B name))+  (defstrand init 6 (n n) (e eA) (l lA) (self A) (peer B))+  (defstrand ltx-gen 1 (self B) (l lB))+  (non-orig lB)+  (non-orig (privk A) (privk B))+  (comment "Explicit authentication, not assuming own LTK safe")+)
+ tst/eadh_um.tst view

file too large to diff

tst/enrich.tst view
@@ -1,6 +1,6 @@ (herald enrich) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/enrich.scm")  (defprotocol enrich basic
tst/envelope.tst view
@@ -1,6 +1,6 @@ (herald "Envelope Protocol" (bound 20)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/envelope.scm") (comment "Strand count bounded at 20") 
+ tst/envelope_short.scm view
@@ -0,0 +1,128 @@+;;; Mark Ryan's envelope protocol, implemented using TPMs.+;;; The protocol includes roles to emulate interactions with a simplified+;;; TPM (trusted platform module) that only has a single Platform+;;; Configuration Register (PCR).++;;; The true protocol is encoded in the "alice" role.  Alice is a+;;; teenager who wants to go out for an evening and maintain privacy+;;; about her itinerary, but her parents insist on being able to know in+;;; an emergency.++;;; Alice uses a TPM-created key to encrypt the itinerary (represented+;;; by 'v' for value).  Alice's parents can alter the state of the TPM+;;; in either of two ways, but not in both: they can extend with+;;; "obtain", which will enable decryption of 'v'.  Or, they can+;;; extend with "refuse", which serves to represent permanently declining+;;; the option to open the envelope.++(herald "Envelope Protocol" (bound 20))++;;; Encoding of a PCR extend operation+(defmacro (extend val old)+  (hash val old))++;; This is the refusal token+(defmacro (refuse n pcr v k aik)+  (enc "quote" (extend "refuse" (extend n pcr)) (enc v k) aik))++(defprotocol envelope basic++  ;; Power on sets the TPM to the boot state+  (defrole tpm-power-on+    (vars (state mesg))+    (trace+     (init "0")))++  ;; TPM Quote has a fake event to deal with the fact that a variable+  ;; of sort mesg must be acquired.+  (defrole tpm-quote+    (vars (nonce pcr mesg) (aik akey))+    (trace+     (recv (cat "quote" nonce))+     (obsv pcr)+     (send (enc "quote" pcr nonce aik)))+    (non-orig aik))++  ;; The extend command occurs only within an encrypted session.  We+  ;; assume some session key already exists+  (defrole tpm-extend-enc+    (vars (value state mesg) (esk skey) (tne tno data)+	  (tpmkey akey))+    (trace+     (recv (cat "establish transport"+		tpmkey (enc esk tpmkey)))+     (send (cat "establish transport" tne))+     (recv (cat "execute transport"+		(cat "extend" (enc value esk))+		tno "false"+		(hash esk (hash "execute transport"+				(hash "extend"+				      (enc value esk)))+				tne tno "false")))+     (tran state (extend value state)))+    (uniq-orig tne)+    (non-orig (invk tpmkey)))++  ;; This role creates a key whose use is restricted to a requested+  ;; pcr value (since we only model one pcr).  It doesn't create or+  ;; change any TPM state.+  (defrole tpm-create-key+    (vars (k aik akey) (pcr mesg) (esk skey))+    (trace+     (recv (enc "create key" pcr esk)) ;; encryption prevents weird shapes+     (send (enc "created" k pcr aik)));; no tpm state is set+    (uniq-orig k)+    (non-orig (invk k) aik esk))++  ;; This role receives an encryption and a previously made key+  ;; structure that restricts the decryption key to be used with a+  ;; certain pcr value.  It retrieves the current value and checks+  ;; that it matches before decrypting.+  (defrole tpm-decrypt+    (vars (m pcr mesg) (k aik akey))+    (trace+     (recv (cat "decrypt" (enc m k)))+     (recv (enc "created" k pcr aik))+     (obsv pcr)+     (send m))+    (non-orig aik))++  ;; Alice extends a pcr with a fresh nonce in an encrypted session.+  ;; She has the TPM create a new key whose use is bound to the hash+  ;; of pcr value she just created with the string "obtain".  She then+  ;; encrypts her fresh secret with this newly created key.  This role+  ;; has a fake reception event to deal with he fact that pcr must be+  ;; acquired.+  (defrole alice+    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+	  (pcr mesg))+    (trace+     (send (cat "establish transport"+		tpmkey (enc esk tpmkey)))+     (recv (cat "establish transport" tne))+     (send (cat "execute transport"+		(cat "extend" (enc n esk))+		tno "false"+		(hash esk (hash "execute transport"+				(hash "extend"+				      (enc n esk)))+				tne tno "false")))+     (recv pcr)				; Fake event+     (send (enc "create key" (extend "obtain" (extend n pcr)) esk1))+     (recv (enc "created" k (extend "obtain" (extend n pcr)) aik))+     (send (enc v k)))+    (uniq-orig n v tno esk)+    (neq (tno n))+    (non-orig aik esk1 (invk tpmkey))))++;;; Initial skeleton+(defskeleton envelope+  (vars (v n data) (k aik akey) (pcr mesg))+  (deflistener (refuse n pcr v k aik))+  (deflistener v)+  (defstrand alice 7 (n n) (pcr pcr) (v v) (k k) (aik aik)))++(defskeleton envelope+  (vars (v data))+  (deflistener v)+  (defstrand alice 7 (v v)))
+ tst/envelope_short.tst view
@@ -0,0 +1,7794 @@+(herald "Envelope Protocol" (bound 20))++(comment "CPSA 3.6.8")+(comment "All input read from tst/envelope_short.scm")+(comment "Strand count bounded at 20")++(defprotocol envelope basic+  (defrole tpm-power-on (vars) (trace (init "0")))+  (defrole tpm-quote+    (vars (nonce pcr mesg) (aik akey))+    (trace (recv (cat "quote" nonce)) (obsv pcr)+      (send (enc "quote" pcr nonce aik)))+    (non-orig aik))+  (defrole tpm-extend-enc+    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))+    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc value esk)) tno+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc value esk)))+            tne tno "false"))) (tran state (hash value state)))+    (non-orig (invk tpmkey))+    (uniq-orig tne))+  (defrole tpm-create-key+    (vars (k aik akey) (pcr mesg) (esk skey))+    (trace (recv (enc "create key" pcr esk))+      (send (enc "created" k pcr aik)))+    (non-orig (invk k) aik esk)+    (uniq-orig k))+  (defrole tpm-decrypt+    (vars (m pcr mesg) (k aik akey))+    (trace (recv (cat "decrypt" (enc m k)))+      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))+    (non-orig aik))+  (defrole alice+    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+      (pcr mesg))+    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    (non-orig aik esk1 (invk tpmkey))+    (uniq-orig v n tno esk)+    (neq (tno n))))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (neq (tno n))+  (non-orig esk1 aik (invk tpmkey))+  (uniq-orig v n tno esk)+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k))))+  (label 0)+  (unrealized (0 0) (1 0) (2 5))+  (preskeleton)+  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))+  (comment "Not a skeleton"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (precedes ((2 6) (0 0)) ((2 6) (1 0)))+  (neq (tno n))+  (non-orig esk1 aik (invk tpmkey))+  (uniq-orig v n tno esk)+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k))))+  (label 1)+  (parent 0)+  (unrealized (0 0) (2 5))+  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))+    (aik aik-0))+  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 2) (2 5)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk tpmkey))+  (uniq-orig v n tno esk)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (cat "quote" nonce))+      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send+        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)+          nonce aik-0))))+  (label 2)+  (parent 1)+  (unrealized (0 0) (3 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)+    (k aik tpmkey akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk-0) (k k) (aik aik))+  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))+  (neq (tno n))+  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-create-key 2)+    (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+  (label 3)+  (parent 1)+  (unrealized (0 0) (1 0) (3 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)+    (k aik tpmkey aik-0 akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk-0) (k k) (aik aik))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+    (aik aik-0))+  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)) ((4 2) (3 0)))+  (neq (tno n))+  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "quote" nonce))+      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+      (send+        (enc "quote"+          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce+          aik-0))))+  (label 4)+  (parent 3)+  (unrealized (0 0) (1 0) (4 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (displaced 4 2 alice 5)+    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+  (label 5)+  (parent 3)+  (unrealized (0 0) (1 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))+  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 1)) ((3 1) (2 5))+    ((4 2) (1 0)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation nonce-test (added-strand tpm-quote 3) v (1 0) (enc v k))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "quote" nonce)) (obsv v)+      (send (enc "quote" v nonce aik-0))))+  (label 6)+  (parent 5)+  (unrealized (0 0) (4 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+    ((4 3) (1 0)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))+  (label 7)+  (parent 5)+  (unrealized (0 0) (4 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 aik-1 akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))+  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+    ((3 1) (5 1)) ((4 3) (1 0)) ((5 2) (4 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" k pcr-0 aik-0) (4 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))+    ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))+      (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))+  (label 8)+  (parent 7)+  (unrealized (0 0) (5 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+    (k k) (aik aik))+  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+    ((4 3) (1 0)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (displaced 5 3 tpm-create-key 2)+    (enc "created" k pcr-0 aik-0) (4 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (obsv (hash "obtain" (hash n pcr))) (send v)))+  (label 9)+  (parent 7)+  (unrealized (0 0) (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)+    (k aik tpmkey tpmkey-0 akey))+  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))+    ((4 3) (1 0)) ((5 3) (4 2)))+  (leadsto ((5 3) (4 2)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))+  (uniq-orig v n tno tne-0 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "obtain" (hash n pcr)) (4 2))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (obsv (hash "obtain" (hash n pcr))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n pcr) (hash "obtain" (hash n pcr)))))+  (label 10)+  (parent 9)+  (unrealized (0 0) (5 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash n state) (5 3))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state))))+  (label 11)+  (parent 10)+  (unrealized (0 0) (6 2))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr+      (hash esk-1+        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+        tno-1 "false")) (aik aik-0))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3))+    ((7 2) (6 2)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (6 2))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv+        (hash esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))+      (send+        (enc "quote"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false") nonce aik-0))))+  (label 12)+  (parent 11)+  (unrealized (0 0) (6 2) (7 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation encryption-test (displaced 7 2 alice 3)+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (6 2))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state))))+  (label 13)+  (parent 11)+  (unrealized (0 0) (6 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test+    (added-listener+      (cat esk-1+        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+        tno-1 "false"))+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (6 2))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))))+  (label 14)+  (parent 11)+  (unrealized (0 0) (6 2) (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr+      (hash esk-1+        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+        tno-1 "false")) (aik aik-0))+  (defstrand tpm-extend-enc 4 (value esk-1)+    (state+      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)+    (tpmkey tpmkey-2))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (8 3))+    ((6 3) (5 3)) ((7 2) (6 2)) ((8 3) (7 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (7 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv+        (hash esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))+      (send+        (enc "quote"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false") nonce aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))+            tne-2 tno-2 "false")))+      (tran+        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+          tne-1 tno-1 "false")+        (hash esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))))+  (label 15)+  (parent 12)+  (unrealized (0 0) (6 2) (8 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (6 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state))))+  (label 16)+  (parent 13)+  (unrealized (0 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((2 0) (7 1)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (6 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 17)+  (parent 13)+  (unrealized (0 0) (7 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 18)+  (parent 13)+  (unrealized (0 0) (7 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+    (aik aik-0))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+          aik-0))))+  (label 19)+  (parent 14)+  (unrealized (0 0) (6 2) (8 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test+    (added-listener+      (cat "execute transport" (hash "extend" (enc n esk-1))))+    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))+  (label 20)+  (parent 14)+  (unrealized (0 0) (6 2) (8 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))+    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send+        (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))))+  (label 21)+  (parent 16)+  (unrealized (7 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+    (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))+    ((2 6) (7 1)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send+        (enc "quote"+          (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)+          nonce aik-0))))+  (label 22)+  (parent 16)+  (unrealized (7 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)) ((8 2) (7 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (7 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 23)+  (parent 18)+  (unrealized (0 0) (8 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+    (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "execute transport")+    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+    (esk esk-2) (tpmkey tpmkey-2))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "execute transport" (hash "extend" (enc n esk-1))) (8 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+          aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport"+          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+          (hash esk-2+            (hash "execute transport"+              (hash "extend" (enc "execute transport" esk-2))) tne-2+            tno-2 "false")))+      (tran (hash "extend" (enc n esk-1))+        (hash "execute transport" (hash "extend" (enc n esk-1))))))+  (label 24)+  (parent 19)+  (unrealized (0 0) (6 2) (9 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash "extend" (enc n esk-1)) (8 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))+  (label 25)+  (parent 20)+  (unrealized (0 0) (6 2) (9 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (precedes ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test+    (added-listener (cat "extend" (enc n esk-1)))+    (hash "extend" (enc n esk-1)) (8 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))))+  (label 26)+  (parent 20)+  (unrealized (0 0) (9 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))+    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 tne-1 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "refuse" (hash n state)) (7 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state)))))+  (label 27)+  (parent 21)+  (unrealized (8 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+    (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "execute transport")+    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+    (esk esk-2) (tpmkey tpmkey-2))+  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1))+    ((10 3) (9 3)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)) ((10 3) (9 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))+  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "extend" (enc n esk-1)) (9 3))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+          aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport"+          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+          (hash esk-2+            (hash "execute transport"+              (hash "extend" (enc "execute transport" esk-2))) tne-2+            tno-2 "false")))+      (tran (hash "extend" (enc n esk-1))+        (hash "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+      (send (cat "establish transport" tne-3))+      (recv+        (cat "execute transport" (cat "extend" (enc "extend" esk-3))+          tno-3 "false"+          (hash esk-3+            (hash "execute transport"+              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+            "false")))+      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+  (label 28)+  (parent 24)+  (unrealized (0 0) (6 2) (10 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0))+    ((10 3) (9 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((10 3) (9 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "extend" (enc n esk-1)) (9 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc "extend" esk-2))+          tno-2 "false"+          (hash esk-2+            (hash "execute transport"+              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2+            "false")))+      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+  (label 29)+  (parent 25)+  (unrealized (0 0) (6 2) (10 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (precedes ((2 0) (6 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (contracted (esk-1 esk)) n (9 0) (enc n esk))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk)))))+  (label 30)+  (parent 26)+  (unrealized (0 0) (6 0) (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+  (precedes ((2 2) (10 1)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))+    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0))+    ((10 2) (9 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-quote 3) n (9 0) (enc n esk))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1))))+    ((recv (cat "quote" nonce)) (obsv n)+      (send (enc "quote" n nonce aik-0))))+  (label 31)+  (parent 26)+  (unrealized (0 0) (10 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (precedes ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-listener esk) n (9 0) (enc n esk))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))+  (label 32)+  (parent 26)+  (unrealized (0 0) (10 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 3) (8 3)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash n state) (8 3))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state))))+  (label 33)+  (parent 27)+  (unrealized (9 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 0) (10 1)) ((2 2) (9 0)) ((2 4) (3 0))+    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))+    ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (7 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (7 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 34)+  (parent 30)+  (unrealized (0 0) (6 0) (10 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))+    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))+    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (7 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 35)+  (parent 30)+  (unrealized (0 0) (6 0) (10 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((2 0) (11 1)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (9 0)) ((11 2) (10 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 36)+  (parent 32)+  (unrealized (0 0) (11 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 37)+  (parent 32)+  (unrealized (0 0) (11 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr+      (hash esk-2+        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+        tno-2 "false")) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 3) (8 3)) ((10 2) (9 2)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false") (9 2))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv+        (hash esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false"))+      (send+        (enc "quote"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false") nonce aik-0))))+  (label 38)+  (parent 33)+  (unrealized (9 2) (10 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test+    (added-listener+      (cat esk-2+        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+        tno-2 "false"))+    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false") (9 2))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false"))))+  (label 39)+  (parent 33)+  (unrealized (9 2) (10 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state pcr nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))+    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))+    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)) ((11 2) (10 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (10 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 40)+  (parent 35)+  (unrealized (0 0) (6 0) (11 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))+    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))+    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)) ((12 2) (11 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (11 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 41)+  (parent 37)+  (unrealized (0 0) (12 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr+      (hash esk-2+        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+        tno-2 "false")) (aik aik-0))+  (defstrand tpm-extend-enc 4 (value esk-2)+    (state+      (cat (hash "execute transport" (hash "extend" (enc n esk-2)))+        tne-2 tno-2 "false")) (tne tne-3) (tno tno-3) (esk esk-3)+    (tpmkey tpmkey-3))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (11 3)) ((9 3) (8 3)) ((10 2) (9 2))+    ((11 3) (10 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+    ((11 3) (10 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false") (10 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv+        (hash esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false"))+      (send+        (enc "quote"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false") nonce aik-0)))+    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+      (send (cat "establish transport" tne-3))+      (recv+        (cat "execute transport" (cat "extend" (enc esk-2 esk-3)) tno-3+          "false"+          (hash esk-3+            (hash "execute transport" (hash "extend" (enc esk-2 esk-3)))+            tne-3 tno-3 "false")))+      (tran+        (cat (hash "execute transport" (hash "extend" (enc n esk-2)))+          tne-2 tno-2 "false")+        (hash esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false"))))+  (label 42)+  (parent 38)+  (unrealized (9 2) (11 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))+    (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 2) (10 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce+          aik-0))))+  (label 43)+  (parent 39)+  (unrealized (9 2) (11 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 1) (10 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test+    (added-listener+      (cat "execute transport" (hash "extend" (enc n esk-2))))+    (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2))))))+  (label 44)+  (parent 39)+  (unrealized (9 2) (11 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))+    (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "execute transport")+    (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)+    (esk esk-3) (tpmkey tpmkey-3))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 2) (10 0)) ((12 3) (11 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+    ((12 3) (11 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "execute transport" (hash "extend" (enc n esk-2))) (11 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce+          aik-0)))+    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+      (send (cat "establish transport" tne-3))+      (recv+        (cat "execute transport"+          (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"+          (hash esk-3+            (hash "execute transport"+              (hash "extend" (enc "execute transport" esk-3))) tne-3+            tno-3 "false")))+      (tran (hash "extend" (enc n esk-2))+        (hash "execute transport" (hash "extend" (enc n esk-2))))))+  (label 45)+  (parent 43)+  (unrealized (9 2) (12 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "extend" (enc n esk-2))) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 1) (10 0)) ((12 2) (11 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash "extend" (enc n esk-2)) (11 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))+      (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0))))+  (label 46)+  (parent 44)+  (unrealized (9 2) (12 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (deflistener (cat "extend" (enc n esk-2)))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (12 0)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 1) (10 0)) ((12 1) (11 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test+    (added-listener (cat "extend" (enc n esk-2)))+    (hash "extend" (enc n esk-2)) (11 0))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "extend" (enc n esk-2)))+      (send (cat "extend" (enc n esk-2)))))+  (label 47)+  (parent 44)+  (unrealized (12 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 tne-4+      tno-4 data) (esk1 esk esk-0 esk-1 esk-2 esk-3 esk-4 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 tpmkey-4+      akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))+    (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "execute transport")+    (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)+    (esk esk-3) (tpmkey tpmkey-3))+  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))+    (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 2) (10 0)) ((12 3) (11 1)) ((13 3) (12 3)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+    ((12 3) (11 1)) ((13 3) (12 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3) (invk tpmkey-4))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 tne-4 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "extend" (enc n esk-2)) (12 3))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce+          aik-0)))+    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+      (send (cat "establish transport" tne-3))+      (recv+        (cat "execute transport"+          (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"+          (hash esk-3+            (hash "execute transport"+              (hash "extend" (enc "execute transport" esk-3))) tne-3+            tno-3 "false")))+      (tran (hash "extend" (enc n esk-2))+        (hash "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "establish transport" tpmkey-4 (enc esk-4 tpmkey-4)))+      (send (cat "establish transport" tne-4))+      (recv+        (cat "execute transport" (cat "extend" (enc "extend" esk-4))+          tno-4 "false"+          (hash esk-4+            (hash "execute transport"+              (hash "extend" (enc "extend" esk-4))) tne-4 tno-4+            "false")))+      (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))+  (label 48)+  (parent 45)+  (unrealized (9 2) (13 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "extend" (enc n esk-2))) (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))+    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 1) (10 0)) ((12 2) (11 0)) ((13 3) (12 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))+    ((13 3) (12 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "extend" (enc n esk-2)) (12 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))+      (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0)))+    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+      (send (cat "establish transport" tne-3))+      (recv+        (cat "execute transport" (cat "extend" (enc "extend" esk-3))+          tno-3 "false"+          (hash esk-3+            (hash "execute transport"+              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+            "false")))+      (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))+  (label 49)+  (parent 46)+  (unrealized (9 2) (13 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk) (tpmkey tpmkey-2))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 2) (6 2)) ((2 2) (12 0))+    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (contracted (esk-2 esk)) n (12 0) (enc n esk))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-2+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-2+            tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-2 tno-2 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-2 tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk)))))+  (label 50)+  (parent 47)+  (unrealized (9 0) (10 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (deflistener (cat "extend" (enc n esk-2)))+  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 1)) ((2 4) (3 0))+    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))+    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))+    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))+    ((11 1) (10 0)) ((12 1) (11 0)) ((13 2) (12 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (added-strand tpm-quote 3) n (12 0) (enc n esk))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "extend" (enc n esk-2)))+      (send (cat "extend" (enc n esk-2))))+    ((recv (cat "quote" nonce)) (obsv n)+      (send (enc "quote" n nonce aik-0))))+  (label 51)+  (parent 47)+  (unrealized (13 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (deflistener (cat "extend" (enc n esk-2)))+  (deflistener esk)+  (precedes ((2 0) (6 0)) ((2 0) (13 0)) ((2 2) (6 2)) ((2 2) (12 0))+    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (added-listener esk) n (12 0) (enc n esk))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "extend" (enc n esk-2)))+      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk)))+  (label 52)+  (parent 47)+  (unrealized (13 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk) (tpmkey tpmkey-2))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 1)) ((2 2) (6 2))+    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))+    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))+    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))+    ((13 2) (10 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-2+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-2+            tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-2 tno-2 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-2 tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 53)+  (parent 50)+  (unrealized (9 0) (13 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk) (tpmkey tpmkey-2))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))+    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))+    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))+    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))+    ((13 3) (10 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-2+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-2+            tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-2 tno-2 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-2 tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 54)+  (parent 50)+  (unrealized (9 0) (13 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (deflistener (cat "extend" (enc n esk-2)))+  (deflistener esk)+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 0) (14 1)) ((2 2) (6 2)) ((2 2) (12 0))+    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))+    ((14 2) (13 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (13 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "extend" (enc n esk-2)))+      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 55)+  (parent 52)+  (unrealized (14 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (deflistener (cat "extend" (enc n esk-2)))+  (deflistener esk)+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))+    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))+    ((14 3) (13 0)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (13 0)+    (enc esk tpmkey))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "extend" (enc n esk-2)))+      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 56)+  (parent 52)+  (unrealized (14 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state pcr nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk) (tpmkey tpmkey-2))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))+    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))+    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))+    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))+    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))+    ((13 3) (10 0)) ((14 2) (13 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (13 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-2+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-2+            tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-2 tno-2 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-2 tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 57)+  (parent 54)+  (unrealized (9 0) (14 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))+  (deflistener+    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce (enc v k))+    (pcr (hash "refuse" (hash n state))) (aik aik))+  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))+    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)+    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (deflistener+    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))+      tne-2 tno-2 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))+  (deflistener (cat "extend" (enc n esk-2)))+  (deflistener esk)+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))+    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))+    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))+    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))+    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))+    ((14 3) (13 0)) ((15 2) (14 1)))+  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (14 1))+  (traces+    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" (enc v k)))+      (obsv (hash "refuse" (hash n state)))+      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))+          tno-1 "false"+          (hash esk-1+            (hash "execute transport"+              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1+            "false")))+      (tran (hash n state) (hash "refuse" (hash n state))))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc n esk-2)))+            tne-2 tno-2 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-2+         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+         tno-2 "false"))+      (send+        (cat esk-2+          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2+          tno-2 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))+      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))+    ((recv (cat "extend" (enc n esk-2)))+      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 58)+  (parent 56)+  (unrealized (15 1))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol envelope basic+  (defrole tpm-power-on (vars) (trace (init "0")))+  (defrole tpm-quote+    (vars (nonce pcr mesg) (aik akey))+    (trace (recv (cat "quote" nonce)) (obsv pcr)+      (send (enc "quote" pcr nonce aik)))+    (non-orig aik))+  (defrole tpm-extend-enc+    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))+    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc value esk)) tno+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc value esk)))+            tne tno "false"))) (tran state (hash value state)))+    (non-orig (invk tpmkey))+    (uniq-orig tne))+  (defrole tpm-create-key+    (vars (k aik akey) (pcr mesg) (esk skey))+    (trace (recv (enc "create key" pcr esk))+      (send (enc "created" k pcr aik)))+    (non-orig (invk k) aik esk)+    (uniq-orig k))+  (defrole tpm-decrypt+    (vars (m pcr mesg) (k aik akey))+    (trace (recv (cat "decrypt" (enc m k)))+      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))+    (non-orig aik))+  (defrole alice+    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)+      (pcr mesg))+    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    (non-orig aik esk1 (invk tpmkey))+    (uniq-orig v n tno esk)+    (neq (tno n))))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (neq (tno n))+  (non-orig esk1 aik (invk tpmkey))+  (uniq-orig v n tno esk)+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k))))+  (label 59)+  (unrealized (0 0) (1 5))+  (preskeleton)+  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+  (comment "Not a skeleton"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (precedes ((1 6) (0 0)))+  (neq (tno n))+  (non-orig esk1 aik (invk tpmkey))+  (uniq-orig v n tno esk)+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k))))+  (label 60)+  (parent 59)+  (unrealized (1 5))+  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))+    (aik aik-0))+  (precedes ((1 6) (0 0)) ((2 2) (1 5)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk tpmkey))+  (uniq-orig v n tno esk)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (cat "quote" nonce))+      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send+        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)+          nonce aik-0))))+  (label 61)+  (parent 60)+  (unrealized (2 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)+    (k aik tpmkey akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk-0) (k k) (aik aik))+  (precedes ((1 6) (0 0)) ((2 1) (1 5)))+  (neq (tno n))+  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-create-key 2)+    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+  (label 62)+  (parent 60)+  (unrealized (0 0) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)+    (k aik tpmkey aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk-0) (k k) (aik aik))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+    (aik aik-0))+  (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))+  (neq (tno n))+  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "quote" nonce))+      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))+      (send+        (enc "quote"+          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce+          aik-0))))+  (label 63)+  (parent 62)+  (unrealized (0 0) (3 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (displaced 3 1 alice 5)+    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))+  (label 64)+  (parent 62)+  (unrealized (0 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))+  (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation nonce-test (added-strand tpm-quote 3) v (0 0) (enc v k))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "quote" nonce)) (obsv v)+      (send (enc "quote" v nonce aik-0))))+  (label 65)+  (parent 64)+  (unrealized (3 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))+  (label 66)+  (parent 64)+  (unrealized (3 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey aik-0 aik-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))+  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((2 1) (4 1))+    ((3 3) (0 0)) ((4 2) (3 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" k pcr-0 aik-0) (3 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))+    ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))+      (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))+  (label 67)+  (parent 66)+  (unrealized (4 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)+    (k aik tpmkey akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+    (k k) (aik aik))+  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey))+  (uniq-orig v n tno esk k)+  (operation encryption-test (displaced 4 2 tpm-create-key 2)+    (enc "created" k pcr-0 aik-0) (3 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (obsv (hash "obtain" (hash n pcr))) (send v)))+  (label 68)+  (parent 66)+  (unrealized (3 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)+    (k aik tpmkey tpmkey-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0))+    ((4 3) (3 2)))+  (leadsto ((4 3) (3 2)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))+  (uniq-orig v n tno tne-0 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "obtain" (hash n pcr)) (3 2))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv pcr)+      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))+      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))+      (obsv (hash "obtain" (hash n pcr))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n pcr) (hash "obtain" (hash n pcr)))))+  (label 69)+  (parent 68)+  (unrealized (4 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash n state) (4 3))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state))))+  (label 70)+  (parent 69)+  (unrealized (5 2))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr+      (hash esk-1+        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+        tno-1 "false")) (aik aik-0))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)) ((6 2) (5 2)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (5 2))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv+        (hash esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))+      (send+        (enc "quote"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false") nonce aik-0))))+  (label 71)+  (parent 70)+  (unrealized (5 2) (6 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+    ((5 3) (4 3)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation encryption-test (displaced 6 1 alice 3)+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (5 2))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state))))+  (label 72)+  (parent 70)+  (unrealized (5 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test+    (added-listener+      (cat esk-1+        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+        tno-1 "false"))+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (5 2))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))))+  (label 73)+  (parent 70)+  (unrealized (5 2) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr+      (hash esk-1+        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+        tno-1 "false")) (aik aik-0))+  (defstrand tpm-extend-enc 4 (value esk-1)+    (state+      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)+    (tpmkey tpmkey-2))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (7 3)) ((5 3) (4 3))+    ((6 2) (5 2)) ((7 3) (6 1)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((7 3) (6 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false") (6 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce))+      (obsv+        (hash esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))+      (send+        (enc "quote"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false") nonce aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2+          "false"+          (hash esk-2+            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))+            tne-2 tno-2 "false")))+      (tran+        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))+          tne-1 tno-1 "false")+        (hash esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false"))))+  (label 74)+  (parent 71)+  (unrealized (5 2) (7 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey))+  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+    ((5 3) (4 3)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state))))+  (label 75)+  (parent 72)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k)+        (aik aik) (tpmkey tpmkey) (pcr state))))+  (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))+    (k (2 1)) (v (1 6))))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+    ((5 3) (4 3)) ((6 2) (5 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (5 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 76)+  (parent 72)+  (unrealized (6 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+    ((5 3) (4 3)) ((6 3) (5 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 77)+  (parent 72)+  (unrealized (6 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+    (aik aik-0))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 2) (6 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+          aik-0))))+  (label 78)+  (parent 73)+  (unrealized (5 2) (7 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test+    (added-listener+      (cat "execute transport" (hash "extend" (enc n esk-1))))+    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))+  (label 79)+  (parent 73)+  (unrealized (5 2) (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)+    (esk1 esk esk-0 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)+    (tno tno) (esk esk) (tpmkey tpmkey-1))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))+    ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tne tno tne-0 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (6 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (tran state (hash n state)))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 80)+  (parent 77)+  (unrealized (7 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+    (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "execute transport")+    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+    (esk esk-2) (tpmkey tpmkey-2))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+          aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport"+          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+          (hash esk-2+            (hash "execute transport"+              (hash "extend" (enc "execute transport" esk-2))) tne-2+            tno-2 "false")))+      (tran (hash "extend" (enc n esk-1))+        (hash "execute transport" (hash "extend" (enc n esk-1))))))+  (label 81)+  (parent 78)+  (unrealized (5 2) (8 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (hash "extend" (enc n esk-1)) (7 0))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))+  (label 82)+  (parent 79)+  (unrealized (5 2) (8 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test+    (added-listener (cat "extend" (enc n esk-1)))+    (hash "extend" (enc n esk-1)) (7 0))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))))+  (label 83)+  (parent 79)+  (unrealized (8 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)+    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))+    (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "execute transport")+    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)+    (esk esk-2) (tpmkey tpmkey-2))+  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))+  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))+  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "extend" (enc n esk-1)) (8 3))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "quote" nonce))+      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))+      (send+        (enc "quote"+          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce+          aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport"+          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"+          (hash esk-2+            (hash "execute transport"+              (hash "extend" (enc "execute transport" esk-2))) tne-2+            tno-2 "false")))+      (tran (hash "extend" (enc n esk-1))+        (hash "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))+      (send (cat "establish transport" tne-3))+      (recv+        (cat "execute transport" (cat "extend" (enc "extend" esk-3))+          tno-3 "false"+          (hash esk-3+            (hash "execute transport"+              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3+            "false")))+      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+  (label 84)+  (parent 81)+  (unrealized (5 2) (9 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)+    (esk1 esk esk-0 esk-1 esk-2 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))+  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))+    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))+  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((9 3) (8 1)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1) (invk tpmkey-2))+  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)+  (operation state-passing-test (added-strand tpm-extend-enc 4)+    (hash "extend" (enc n esk-1)) (8 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))+      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))+    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))+      (send (cat "establish transport" tne-2))+      (recv+        (cat "execute transport" (cat "extend" (enc "extend" esk-2))+          tno-2 "false"+          (hash esk-2+            (hash "execute transport"+              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2+            "false")))+      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))+  (label 85)+  (parent 82)+  (unrealized (5 2) (9 3))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk)))))+  (label 86)+  (parent 83)+  (unrealized (5 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))+  (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))+    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1))))+    ((recv (cat "quote" nonce)) (obsv n)+      (send (enc "quote" n nonce aik-0))))+  (label 87)+  (parent 83)+  (unrealized (9 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-listener esk) n (8 0) (enc n esk))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))+  (label 88)+  (parent 83)+  (unrealized (9 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))+    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))+    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+    ((8 1) (7 0)) ((9 2) (6 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 89)+  (parent 86)+  (unrealized (5 0) (9 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))+    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))+    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+    ((8 1) (7 0)) ((9 3) (6 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 90)+  (parent 86)+  (unrealized (5 0) (9 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))+  (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 2) (9 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-quote 3) esk (9 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+    ((recv (cat "quote" nonce)) (obsv esk)+      (send (enc "quote" esk nonce aik-0))))+  (label 91)+  (parent 88)+  (unrealized (10 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 3) (9 0)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)+    (enc esk tpmkey))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))+  (label 92)+  (parent 88)+  (unrealized (10 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton envelope+  (vars (state pcr nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk) (tpmkey tpmkey-1))+  (deflistener+    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))+  (deflistener (cat "extend" (enc n esk)))+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))+    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))+    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))+    ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (9 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk)) tno-1+          "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne-1+            tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+         tne-1 tno-1 "false"))+      (send+        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))+          tne-1 tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk))))+      (send (cat "execute transport" (hash "extend" (enc n esk)))))+    ((recv (cat "extend" (enc n esk)))+      (send (cat "extend" (enc n esk))))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 93)+  (parent 90)+  (unrealized (5 0) (10 1))+  (dead)+  (comment "empty cohort"))++(defskeleton envelope+  (vars (state pcr nonce mesg)+    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)+    (esk1 esk esk-0 esk-1 skey)+    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))+  (deflistener v)+  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)+    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))+  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))+    (esk esk1) (k k) (aik aik))+  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))+    (k k) (aik aik))+  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))+    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))+  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)+    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))+  (deflistener+    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))+      tne-1 tno-1 "false"))+  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))+  (deflistener (cat "extend" (enc n esk-1)))+  (deflistener esk)+  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))+  (defstrand tpm-quote 3 (nonce nonce)+    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))+  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))+    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))+    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))+  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))+  (neq (tno n))+  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)+    (invk tpmkey-1))+  (uniq-orig v n tno tne-0 tne-1 esk k)+  (operation encryption-test (added-strand tpm-quote 3)+    (enc "created" tpmkey pcr aik-0) (10 1))+  (traces ((recv v) (send v))+    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))+      (recv (cat "establish transport" tne))+      (send+        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"+          (hash esk+            (hash "execute transport" (hash "extend" (enc n esk))) tne+            tno "false"))) (recv state)+      (send (enc "create key" (hash "obtain" (hash n state)) esk1))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (send (enc v k)))+    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))+      (send (enc "created" k (hash "obtain" (hash n state)) aik)))+    ((recv (cat "decrypt" (enc v k)))+      (recv (enc "created" k (hash "obtain" (hash n state)) aik))+      (obsv (hash "obtain" (hash n state))) (send v))+    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))+      (send (cat "establish transport" tne-0))+      (recv+        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))+          tno-0 "false"+          (hash esk-0+            (hash "execute transport"+              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0+            "false")))+      (tran (hash n state) (hash "obtain" (hash n state))))+    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))+      (send (cat "establish transport" tne-1))+      (recv+        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1+          "false"+          (hash esk-1+            (hash "execute transport" (hash "extend" (enc n esk-1)))+            tne-1 tno-1 "false"))) (tran state (hash n state)))+    ((recv+       (cat esk-1+         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+         tno-1 "false"))+      (send+        (cat esk-1+          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1+          tno-1 "false")))+    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))+      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))+    ((recv (cat "extend" (enc n esk-1)))+      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))+    ((recv (cat "decrypt" (enc esk tpmkey)))+      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))+    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))+      (send+        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))+  (label 94)+  (parent 92)+  (unrealized (11 1))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/eq_test.scm view
@@ -0,0 +1,33 @@+(herald "Equality constraint test protocol"+   (comment "First skeleton should have a shape,"+            "second, and hird should be dead."))++(defprotocol eqtest basic+  (defrole init+     (vars (n1 n2 text) (k skey))+     (trace+       (send (cat n1 (enc n1 n2 k)))+       (recv n2))+     (non-orig k)+     (uniq-orig n1 n2)+  )+)++;;; With no inequality declaration, a shape+;;; should be found where n1 = n2.+(defskeleton eqtest+   (vars (n1 n2 text) (k skey))+   (defstrand init 2 (n1 n1) (n2 n2) (k k)))++;;; With the equality declaration, n1 = n2 should+;;; be found by skeletonizing.+(defskeleton eqtest+   (vars (n1 n2 text))+   (defstrand init 2 (n1 n1) (n2 n2))+   (eq (n1 n2)))++;;; An fn-of declaration should produce a similar result.+(defskeleton eqtest+  (vars (n1 n2 text))+  (defstrand init 2 (n1 n1) (n2 n2))+  (fn-of ("foo" (n1 "bar") (n2 "bar"))))
+ tst/eq_test.tst view
@@ -0,0 +1,110 @@+(herald "Equality constraint test protocol"+  (comment "First skeleton should have a shape,"+    "second, and hird should be dead."))++(comment "CPSA 3.6.8")+(comment "All input read from tst/eq_test.scm")++(defprotocol eqtest basic+  (defrole init+    (vars (n1 n2 text) (k skey))+    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+    (non-orig k)+    (uniq-orig n1 n2)))++(defskeleton eqtest+  (vars (n1 n2 text) (k skey))+  (defstrand init 2 (n1 n1) (n2 n2) (k k))+  (non-orig k)+  (uniq-orig n1 n2)+  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))+  (label 0)+  (unrealized (0 1))+  (origs (n1 (0 0)) (n2 (0 0)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton eqtest+  (vars (n1 text) (k skey))+  (defstrand init 2 (n1 n1) (n2 n1) (k k))+  (non-orig k)+  (uniq-orig n1)+  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))+  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((n1 n1) (n2 n1) (k k))))+  (origs (n1 (0 0))))++(comment "Nothing left to do")++(defprotocol eqtest basic+  (defrole init+    (vars (n1 n2 text) (k skey))+    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+    (non-orig k)+    (uniq-orig n1 n2)))++(defskeleton eqtest+  (vars (n1 n2 text) (k skey))+  (defstrand init 2 (n1 n1) (n2 n2) (k k))+  (non-orig k)+  (uniq-orig n1 n2)+  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))+  (label 2)+  (unrealized (0 1))+  (origs (n1 (0 0)) (n2 (0 0)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton eqtest+  (vars (n1 text) (k skey))+  (defstrand init 2 (n1 n1) (n2 n1) (k k))+  (non-orig k)+  (uniq-orig n1)+  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))+  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))+  (label 3)+  (parent 2)+  (unrealized)+  (shape)+  (maps ((0) ((n1 n1) (n2 n1) (k k))))+  (origs (n1 (0 0))))++(comment "Nothing left to do")++(defprotocol eqtest basic+  (defrole init+    (vars (n1 n2 text) (k skey))+    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))+    (non-orig k)+    (uniq-orig n1 n2)))++(defskeleton eqtest+  (vars (n1 n2 text) (k skey))+  (defstrand init 2 (n1 n1) (n2 n2) (k k))+  (fn-of ("foo" (n1 "bar") (n2 "bar")))+  (non-orig k)+  (uniq-orig n1 n2)+  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))+  (label 4)+  (unrealized (0 1))+  (preskeleton)+  (origs (n1 (0 0)) (n2 (0 0)))+  (comment "Not a skeleton"))++(defskeleton eqtest+  (vars (n2 text) (k skey))+  (defstrand init 2 (n1 n2) (n2 n2) (k k))+  (fn-of ("foo" (n2 "bar")))+  (non-orig k)+  (uniq-orig n2)+  (traces ((send (cat n2 (enc n2 n2 k))) (recv n2)))+  (label 5)+  (parent 4)+  (unrealized)+  (shape)+  (maps ((0) ((n2 n2) (k k))))+  (origs (n2 (0 0))))++(comment "Nothing left to do")
tst/ffgg.tst view
@@ -1,7 +1,7 @@ (herald "The ffgg Protocol"   (comment "From A Necessarily Parallel Attack by Jon K. Millen")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/ffgg.scm")  (defprotocol ffgg basic
tst/fluffy_draft03_gske.tst view
@@ -3,7 +3,7 @@   (comment     "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/fluffy_draft03_gske.scm")  (defprotocol fluffy basic
tst/fnof_or.tst view
@@ -2,7 +2,7 @@   (comment     "Version using variables of sort mesg, with ltk function emulated.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/fnof_or.scm")  (defprotocol or basic
tst/fnof_test.tst view
@@ -1,7 +1,7 @@ (herald "Function constraint test protocol"   (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/fnof_test.scm")  (defprotocol fnoftest basic
tst/fnof_woolam.tst view
@@ -1,6 +1,6 @@ (herald "Woo-Lam Protocol, using fnof to emulate ltk function") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/fnof_woolam.scm")  (defprotocol woolam basic
tst/fnof_yahalom.tst view
@@ -2,7 +2,7 @@   "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function"   (bound 12)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/fnof_yahalom.scm")  (defprotocol yahalom basic
tst/goals.tst view
@@ -1,6 +1,6 @@ (herald goals) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/goals.scm")  (defprotocol ns basic
− tst/graphtst
@@ -1,10 +0,0 @@-#! /bin/sh--for f in *.tst-do-    b=`basename $f .tst`-    echo graphing $f-    ../dist/build/cpsagraph/cpsagraph -o "o_${b}.xhtml" "$f"-    ../dist/build/cpsashapes/cpsashapes -o "o_${b}.txt" "$f"-    ../dist/build/cpsagraph/cpsagraph -o "o_${b}_shapes.xhtml" "o_${b}.txt"-done
tst/iadh_um.tst view

file too large to diff

+ tst/iadh_um_eq.scm view
@@ -0,0 +1,63 @@+; Unified Model++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  Since+; CPSA does not provide an intrinsic association between names and+; Diffie-Hellman values, we use digital signatures to link+; authentication of a Diffie-Hellman long-term public value to a+; public key.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "IADH: unified model (UM)" (bound 20) (limit 8000) (algebra diffie-hellman))++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l lp e rndx) (ep expt) (self peer name) (n data))+    (trace+     (send (cat self peer (exp (gen) l) (exp (gen) lp)))+     (send (cat (exp (gen) l) (exp (gen) e)))+     (recv (exp (gen) ep))+     )+    (fn-of ("principal-of" (l self) (lp peer))+           ("ltx-of" (self l) (peer lp)))+    (uniq-gen e)+    (neq (ep (one))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self l)))+    (uniq-orig l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))++  )+)++;; Implicit authentication: participants will agree on the resulting key+;; foo(key).  Therefore they should agree on the names A and B.+ (defskeleton iadh-um+  (vars (eA lA lAp eB lB lBp rndx) (ep ep-0 expt))+  (defstrand participant 3 (lp lAp) (ep ep) (e eA) (l lA))+  (defstrand participant 3 (lp lBp) (ep ep-0) (e eB) (l lB))+  (eq ((hash (exp (gen) (mul lBp lB)) (exp (gen) (mul ep-0 eB)))+       (hash (exp (gen) (mul lAp lA)) (exp (gen) (mul ep eA)))))+  (non-orig lA lB)+  (neq (eA eB))+  (comment "Implicit authentication")+)
+ tst/iadh_um_eq.tst view
@@ -0,0 +1,56 @@+(herald "IADH: unified model (UM)" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/iadh_um_eq.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l lp e rndx) (ep expt) (self peer name))+    (trace (send (cat self peer (exp (gen) l) (exp (gen) lp)))+      (send (cat (exp (gen) l) (exp (gen) e))) (recv (exp (gen) ep)))+    (uniq-gen e)+    (fn-of ("ltx-of" (self l) (peer lp))+      ("principal-of" (l self) (lp peer)))+    (neq (ep (one)))+    (absent (e (exp (gen) l)) (e (exp (gen) lp))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self l)))+    (uniq-orig l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton iadh-um+  (vars (self peer self-0 peer-0 name) (eA lA lAp eB lB lBp rndx)+    (ep ep-0 expt))+  (defstrand participant 3 (self self) (peer peer) (l lA) (lp lAp)+    (e eA) (ep ep))+  (defstrand participant 3 (self self-0) (peer peer-0) (l lB) (lp lBp)+    (e eB) (ep ep-0))+  (absent (eB (exp (gen) lB)) (eB (exp (gen) lBp)) (eA (exp (gen) lA))+    (eA (exp (gen) lAp)))+  (fn-of ("ltx-of" (self-0 lB) (peer-0 lBp) (self lA) (peer lAp))+    ("principal-of" (lB self-0) (lBp peer-0) (lA self) (lAp peer)))+  (neq (ep-0 (one)) (eA eB) (ep (one)))+  (non-orig lA lB)+  (uniq-gen eA eB)+  (comment "Implicit authentication")+  (traces+    ((send (cat self peer (exp (gen) lA) (exp (gen) lAp)))+      (send (cat (exp (gen) lA) (exp (gen) eA))) (recv (exp (gen) ep)))+    ((send (cat self-0 peer-0 (exp (gen) lB) (exp (gen) lBp)))+      (send (cat (exp (gen) lB) (exp (gen) eB)))+      (recv (exp (gen) ep-0))))+  (label 0)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((eA eA) (lA lA) (lAp lAp) (eB eB) (lB lB) (lBp lBp) (ep ep)+        (ep-0 ep-0) (self self) (peer peer) (self-0 self-0)+        (peer-0 peer-0))))+  (origs))++(comment "Nothing left to do")
+ tst/iadh_um_joshua.scm view
@@ -0,0 +1,97 @@+; Unified Model++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  Since+; CPSA does not provide an intrinsic association between names and+; Diffie-Hellman values, we use digital signatures to link+; authentication of a Diffie-Hellman long-term public value to a+; public key.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "IADH: unified model (UM)" (bound 20) (limit 2000) (algebra diffie-hellman))++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l e rndx) (hl he base) (self peer name) (kh n data))+    (trace+     (recv (enc "cert" (exp (gen) l) self (privk self)))+     (recv (enc "cert" hl peer (privk peer)))+     (send (exp (gen) e))+     (recv he)+     (send kh))+    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))+;     (uniq-gen e)+    (neq (he (gen))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (enc "cert" (exp (gen) l) self (privk self)))+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))))+  )++;; Implicit authentication: participants will agree on the resulting key+;; foo(key).  Therefore they should agree on the names A and B.++(defskeleton iadh-um+  (vars (kh data) (eA lA eB lB rndx) (A B C D name))+  (defstrand participant 5 (kh kh) (e eA) (l lA) (self A) (peer C))+  (defstrand participant 5 (kh kh) (e eB) (l lB) (self B) (peer D))+  (non-orig lA lB)+  (uniq-gen eA eB)+  (neq (A B)(eA eB) (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))+  (non-orig (privk C) (privk D) (privk A) (privk B))+  (comment "Implicit authentication")+  )++;; Security:++(defskeleton iadh-um+  (vars (kh data) (eA lA eB lB rndx) (A B C D name))+  (defstrand participant 5 (kh kh) (e eA) (l lA) (self A) (peer C))+  (defstrand participant 5 (kh kh) (e eB) (l lB) (self B) (peer D))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+  (non-orig lA lB)+  (uniq-gen eA eB)+  (neq (A B)(eA eB) (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))+  (non-orig (privk C) (privk D) (privk A) (privk B))+  (comment "Implicit authentication + disclosure")+  )++(defskeleton iadh-um+  (vars (kh data) (eA lA lB rndx) (hl he base) (A B C D name))+  (defstrand participant 5 (kh kh) (e eA) (l lA) (hl (exp (gen) lB)) (self A) (peer C))+  (deflistener (hash (exp (exp (gen) lB) lA) (exp he eA)))+  (non-orig lA lB)+  (neq (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk C) (privk A))+  (comment "Implicit authentication + disclosure")+  )++(defskeleton iadh-um+  (vars (kh data) (eA lA lB rndx) (hl he base) (A B C D name))+  (defstrand participant 5 (kh kh) (e eA) (l lA) (hl (exp (gen) lB)) (self A) (peer C))+  (deflistener (hash (exp (exp (gen) lB) lA) (exp he eA)))+  (non-orig lB)+  (uniq-gen eA)+  (neq (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk C) (privk A))+  (comment "Implicit authentication + disclosure")+  )
+ tst/iadh_um_joshua.tst view
@@ -0,0 +1,36728 @@+(herald "IADH: unified model (UM)" (bound 20) (limit 2000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/iadh_um_joshua.scm")+(comment "Strand count bounded at 20")++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l e rndx) (hl he base) (self peer name) (kh data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))+      (recv he) (send kh))+    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))+    (neq (he (gen))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self)))))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (hl he hl-0 he-0 base)+    (eA lA eB lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)+    (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl hl-0) (he he-0)+    (l lB) (e eB))+  (fn-of+    (foo ((hash (exp hl-0 lB) (exp he-0 eB)) kh)+      ((hash (exp hl lA) (exp he eA)) kh)))+  (neq (he-0 (gen)) (he (gen)) (A B) (eA eB) (lA lB) (eA lA) (eB lB)+    (eA lB) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)+  (uniq-gen eA eB)+  (comment "Implicit authentication")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)+      (send kh))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" hl-0 D (privk D))) (send (exp (gen) eB))+      (recv he-0) (send kh)))+  (label 0)+  (unrealized (0 0) (0 1) (1 0) (1 1))+  (preskeleton)+  (origs)+  (comment "Not a skeleton"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (hl he base) (lA lB eA eB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)+    (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp hl (mul lA (rec lB)))) (he (exp he (mul eA (rec eB))))+    (l lB) (e eB))+  (precedes ((0 2) (1 3)))+  (fn-of (foo ((hash (exp hl lA) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)+  (uniq-gen eA eB)+  (comment "Implicit authentication")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)+      (send kh))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" (exp hl (mul lA (rec lB))) D (privk D)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB))))+      (send kh)))+  (label 1)+  (parent 0)+  (unrealized (0 0) (0 1) (1 0) (1 1) (1 3))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (hl he base) (lA eA eB l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)+    (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp hl (mul lA (rec l)))) (he (exp he (mul eA (rec eB)))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((2 0) (1 0)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp hl lA) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l) B (privk B)) (1 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp hl (mul lA (rec l))) D (privk D)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 2)+  (parent 1)+  (unrealized (0 0) (0 1) (1 1) (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (he base) (lA eA eB l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l))) (he he) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp he (mul eA (rec eB)))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((2 0) (0 1)) ((2 0) (1 0)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA eB l)+  (operation encryption-test (displaced 3 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 3)+  (parent 2)+  (unrealized (0 0) (0 1) (1 3))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (he base) (lA eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0))) (he he) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp he (mul eA (rec eB)))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 1))+    ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 4)+  (parent 2)+  (unrealized (0 0) (0 1) (1 3))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eB l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) eB)) (l l-0)+    (e e))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eB l e)+  (operation nonce-test (displaced 3 0 participant 3) (exp (gen) e-0)+    (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 5)+  (parent 3)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (lA eA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) e e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (A B) (eA e) (lA l) (eA lA) (e l) (eA l) (e lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA l e)+  (operation nonce-test (displaced 3 1 participant 3) (exp (gen) e-0)+    (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 6)+  (parent 3)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C self peer name) (hl base)+    (lA eA eB l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 2) (1 3)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA eB l)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 7)+  (parent 3)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (lA eA eB l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB l))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA eB l)+  (operation nonce-test (displaced 3 2 ltx-gen 1) (exp (gen) l-0) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 8)+  (parent 3)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C self name) (lA eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 3)) ((3 0) (1 3)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA eB l l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 9)+  (parent 3)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (he base) (lA eA eB l rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l))) (he he) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp he (mul eA (rec eB)))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp he (mul eA (rec eB) (rec w))) w))+  (precedes ((0 2) (3 0)) ((1 2) (3 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 1) (1 3)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA eB l)+  (precur (3 0))+  (operation nonce-test+    (added-listener (cat (exp he (mul eA (rec eB) (rec w))) w))+    (exp he (mul eA (rec eB))) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp he (mul eA (rec eB) (rec w))) w))+      (send (cat (exp he (mul eA (rec eB) (rec w))) w))))+  (label 10)+  (parent 3)+  (unrealized (0 0) (0 1) (3 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eB l l-0 l-1 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) eB)) (l l-1)+    (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-1 l)+    (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (uniq-gen eB l l-0 e)+  (operation nonce-test (displaced 4 0 participant 3) (exp (gen) e-0)+    (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 11)+  (parent 4)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) e e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (A B) (eA e) (lA l-0) (eA lA) (e l-0) (eA l-0) (e lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)+  (uniq-gen eA l l-0 e)+  (operation nonce-test (displaced 4 1 participant 3) (exp (gen) e-0)+    (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 12)+  (parent 4)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self peer name) (hl base)+    (lA eA eB l l-0 l-1 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 2) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l l-0)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 13)+  (parent 4)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (A B) (eA eB) (lA l-0) (eA lA) (eB l-0) (eA l-0) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 4 2 ltx-gen 1) (exp (gen) l-1) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 14)+  (parent 4)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 4 3 ltx-gen 1) (exp (gen) l-1) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 15)+  (parent 4)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self name) (lA eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB l-1))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 16)+  (parent 4)+  (unrealized (0 0) (0 1) (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (he base) (lA eA eB l l-0 rndx)+    (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0))) (he he) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp he (mul eA (rec eB)))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp he (mul eA (rec eB) (rec w))) w))+  (precedes ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l l-0)+  (precur (4 0))+  (operation nonce-test+    (added-listener (cat (exp he (mul eA (rec eB) (rec w))) w))+    (exp he (mul eA (rec eB))) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp he (mul eA (rec eB) (rec w))) w))+      (send (cat (exp he (mul eA (rec eB) (rec w))) w))))+  (label 17)+  (parent 4)+  (unrealized (0 0) (0 1) (4 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eB l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) eB)) (l l-0)+    (e e))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eB l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 18)+  (parent 5)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (A B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eA l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 19)+  (parent 6)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C self peer name) (hl base)+    (eA eB l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 2) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) l l-1)+  (uniq-gen eA eB l l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 20)+  (parent 7)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) eB l))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (A B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 21)+  (parent 8)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C self name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (self B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk self) l l-0)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 22)+  (parent 9)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 3)) ((3 0) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) l l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 23)+  (parent 9)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (lA eA eB l rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB w))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eA eB l)+  (precur (3 0))+  (operation nonce-test+    (contracted (he (exp (gen) (mul (rec eA) eB w)))) (gen) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 24)+  (parent 10)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eB l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) (mul eB w)))+    (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (A B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (precur (3 0))+  (uniq-gen eB l e)+  (operation nonce-test (displaced 4 0 participant 3) (exp (gen) e-0)+    (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 25)+  (parent 10)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (lA eA rndx) (w expt) (l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) w e e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (lA l) (eA lA)+    (e l) (eA l) (e lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (precur (3 0))+  (uniq-gen eA l e)+  (operation nonce-test (displaced 4 1 participant 3) (exp (gen) e-0)+    (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 26)+  (parent 10)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C self peer name) (hl base) (lA eA eB l rndx)+    (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB w e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 2) (3 0)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (lA l)+    (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (precur (3 0))+  (uniq-gen eA eB l)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 27)+  (parent 10)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (lA eA eB rndx) (w expt) (l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB w l))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) l) w))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (A B) (eA eB) (lA l)+    (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (precur (3 0))+  (uniq-gen eA eB l)+  (operation nonce-test (displaced 4 2 ltx-gen 1) (exp (gen) l-0) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))+  (label 28)+  (parent 10)+  (unrealized (0 0) (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C self name) (lA eA eB l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l)))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 3)) ((4 0) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (lA l)+    (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (precur (3 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 29)+  (parent 10)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eB l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) eB)) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (D B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eB l e l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv (exp (gen) eB)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 30)+  (parent 11)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eB l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) eB)) (l l-1)+    (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-1 l)+    (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (uniq-gen eB l l-0 e l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 31)+  (parent 11)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eA l e l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 32)+  (parent 12)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) e e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (A B) (eA e) (l-1 l-0) (eA l-1) (e l-0) (eA l-0) (e l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (uniq-gen eA l l-0 e l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 33)+  (parent 12)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D self peer name) (hl base)+    (eA eB l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3)))+  (fn-of ("principal-of" (l-1 D) (l B))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk C) (privk D) l l-1)+  (uniq-gen eA eB l l-1)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 34)+  (parent 13)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self peer name) (hl base)+    (eA eB l l-0 l-1 e l-2 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-2))))+    (he (exp (gen) (mul (rec eA) eB e))) (l l-2) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-2))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 2) (1 3)) ((5 0) (0 0)))+  (fn-of ("principal-of" (l-2 A) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (A B) (eA eB) (l-2 l) (eA l-2) (eB l) (eA l) (eB l-2))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)+  (uniq-gen eA eB l l-0 l-2)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))+  (label 35)+  (parent 13)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 36)+  (parent 14)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (A B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 37)+  (parent 14)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 38)+  (parent 15)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 39)+  (parent 15)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3)))+  (fn-of ("principal-of" (l-1 D) (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk C) (privk D) l l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 40)+  (parent 16)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B C D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (self B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk C) (privk D) (privk self) l l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (displaced 5 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 41)+  (parent 16)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self name) (eA eB l l-0 l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-2))))+    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-2) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self A) (l l-2))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-2 A) (l-1 self) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (A B) (eA eB) (l-2 l) (eA l-2) (eB l) (eA l) (eB l-2))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)+  (uniq-gen eA eB l l-0 l-1 l-2)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))+  (label 42)+  (parent 16)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA eB l l-0 rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB w))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eA eB l l-0)+  (precur (4 0))+  (operation nonce-test+    (contracted (he (exp (gen) (mul (rec eA) eB w)))) (gen) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 43)+  (parent 17)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eB l l-0 rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) (mul eB w)))+    (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (A B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen eB l l-0 e)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 44)+  (parent 17)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) w e e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (lA l-0)+    (eA lA) (e l-0) (eA l-0) (e lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)+  (precur (4 0))+  (uniq-gen eA l l-0 e)+  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 45)+  (parent 17)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self peer name) (hl base)+    (lA eA eB l l-0 rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB w e))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (lA l)+    (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 46)+  (parent 17)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (lA l-0)+    (eA lA) (eB l-0) (eA l-0) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 47)+  (parent 17)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (lA eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (lA l)+    (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 48)+  (parent 17)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self name) (lA eA eB l l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul (rec lA) l l-0)))+    (he (exp (gen) (mul (rec eA) eB w l-1))) (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-1))) kh)))+  (neq ((exp (gen) (mul w l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-1)) (gen)) (A B) (eA eB) (lA l)+    (eA lA) (eB l) (eA l) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 49)+  (parent 17)+  (unrealized (0 0) (0 1) (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) eB w))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (A B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (precur (3 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 50)+  (parent 24)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eB l rndx) (w expt) (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) (mul eB w)))+    (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (A B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (precur (3 0))+  (uniq-gen eB l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 51)+  (parent 25)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eA rndx) (w expt) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) w e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (l-0 l)+    (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (precur (3 0))+  (uniq-gen eA l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 52)+  (parent 26)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C self peer name) (hl base) (eA eB l rndx)+    (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB w e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 2) (3 0)) ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) l l-1)+  (precur (3 0))+  (uniq-gen eA eB l l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 53)+  (parent 27)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) eB w l))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (A B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (precur (3 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 54)+  (parent 28)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C self name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self) (peer C)+    (hl (exp (gen) (mul l l (rec l-0))))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (self B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk self) l l-0)+  (precur (3 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 55)+  (parent 29)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C self name) (eA eB l rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 3)) ((4 0) (3 0))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) l l-1)+  (precur (3 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 56)+  (parent 29)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) eB)) (l l) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (D B) (e eB) (l l-0)+    (e l) (eB l-0) (e l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eB e l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 57)+  (parent 30)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (A D) (B B) (C B) (D D) (hl (exp (gen) l-0))+        (he (exp (gen) eB)) (lA l) (lB l-0) (eA e) (eB eB))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA e l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 58)+  (parent 32)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (eA eB l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l-0 l-1)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 59)+  (parent 34)+  (unrealized (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 60)+  (parent 36)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 61)+  (parent 38)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 62)+  (parent 40)+  (unrealized (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB w))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 63)+  (parent 43)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA eB l l-0 rndx) (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB w))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 64)+  (parent 43)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eB l rndx) (w expt) (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul eB w))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eB l e l-0)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 65)+  (parent 44)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eB l l-0 rndx) (w expt) (e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) (mul eB w)))+    (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (A B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen eB l l-0 e l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 66)+  (parent 44)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA rndx) (w expt) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) w e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (D B) (eA e) (l-0 l)+    (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA l e l-0)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 67)+  (parent 45)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA l rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) w e e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (l-1 l-0)+    (eA l-1) (e l-0) (eA l-0) (e l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen eA l l-0 e l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 68)+  (parent 45)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D self peer name) (hl base) (eA eB l rndx)+    (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB w e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-1 D) (l B))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk C) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-1)+  (operation encryption-test (displaced 6 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 69)+  (parent 46)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self peer name) (hl base) (eA eB l l-0 rndx)+    (w expt) (l-1 e l-2 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-2))))+    (he (exp (gen) (mul (rec eA) eB w e))) (l l-2) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-2))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)) ((6 0) (0 0)))+  (fn-of ("principal-of" (l-2 A) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (l-2 l)+    (eA l-2) (eB l) (eA l) (eB l-2))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-2)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))+  (label 70)+  (parent 46)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB w l))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))+  (label 71)+  (parent 47)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA eB l rndx) (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (l-1 l-0)+    (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 72)+  (parent 47)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 73)+  (parent 48)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (eA eB l rndx) (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 74)+  (parent 48)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B C D self name) (eA eB l rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 D) (l-0 self) (l B))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk C) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (displaced 6 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 75)+  (parent 49)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B C D self name) (eA eB l l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self self) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-1))))+    (he (exp (gen) (mul (rec eA) eB w l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-1))) kh)))+  (neq ((exp (gen) (mul w l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-1)) (gen)) (self B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk C) (privk D) (privk self) l l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (displaced 6 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 76)+  (parent 49)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A B C D self name) (eA eB l l-0 rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C)+    (hl (exp (gen) (mul l l-0 (rec l-2))))+    (he (exp (gen) (mul (rec eA) eB w l-1))) (l l-2) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self A) (l l-2))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)) ((6 0) (0 0)))+  (fn-of ("principal-of" (l-2 A) (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-1))) kh)))+  (neq ((exp (gen) (mul w l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-1)) (gen)) (A B) (eA eB) (l-2 l)+    (eA l-2) (eB l) (eA l) (eB l-2))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1 l-2)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))+  (label 77)+  (parent 49)+  (unrealized (0 1) (0 3))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (rec eA)) e))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA e l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) (rec eA)) e))+    (exp (gen) (mul (rec eA) e e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (rec eA)) e))+      (send (cat (exp (gen) (rec eA)) e))))+  (label 78)+  (parent 58)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul e e)) eA))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA e l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) (mul e e)) eA))+    (exp (gen) (mul (rec eA) e e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul e e)) eA))+      (send (cat (exp (gen) (mul e e)) eA))))+  (label 79)+  (parent 58)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (eA eB l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) e))+  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))+    ((5 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) eB)) e))+    (exp (gen) (mul (rec eA) eB e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) e))+      (send (cat (exp (gen) (mul (rec eA) eB)) e))))+  (label 80)+  (parent 59)+  (unrealized (5 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (eA eB l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) (mul (rec eA) e)) eB))+  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))+    ((5 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) e)) eB))+    (exp (gen) (mul (rec eA) eB e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) (mul (rec eA) e)) eB))+      (send (cat (exp (gen) (mul (rec eA) e)) eB))))+  (label 81)+  (parent 59)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (eA eB l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) (mul eB e)) eA))+  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))+    ((5 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (mul eB e)) eA))+    (exp (gen) (mul (rec eA) eB e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) (mul eB e)) eA))+      (send (cat (exp (gen) (mul eB e)) eA))))+  (label 82)+  (parent 59)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) l-0)) eB))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) l-0)) eB))+    (exp (gen) (mul (rec eA) eB l-0)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec eA) l-0)) eB))+      (send (cat (exp (gen) (mul (rec eA) l-0)) eB))))+  (label 83)+  (parent 60)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eB l-0)) eA))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eB l-0)) eA))+    (exp (gen) (mul (rec eA) eB l-0)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eB l-0)) eA))+      (send (cat (exp (gen) (mul eB l-0)) eA))))+  (label 84)+  (parent 60)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) l)) eB))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) l)) eB))+    (exp (gen) (mul (rec eA) eB l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec eA) l)) eB))+      (send (cat (exp (gen) (mul (rec eA) l)) eB))))+  (label 85)+  (parent 61)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eB l)) eA))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) (mul eB l)) eA))+    (exp (gen) (mul (rec eA) eB l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eB l)) eA))+      (send (cat (exp (gen) (mul eB l)) eA))))+  (label 86)+  (parent 61)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l))+  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (1 3))+    ((4 0) (5 0)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) eB)) l))+    (exp (gen) (mul (rec eA) eB l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) l))+      (send (cat (exp (gen) (mul (rec eA) eB)) l))))+  (label 87)+  (parent 62)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) l)) eB))+  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (1 3))+    ((4 0) (5 0)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) l)) eB))+    (exp (gen) (mul (rec eA) eB l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) (mul (rec eA) l)) eB))+      (send (cat (exp (gen) (mul (rec eA) l)) eB))))+  (label 88)+  (parent 62)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) (mul eB l)) eA))+  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (1 3))+    ((4 0) (5 0)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (mul eB l)) eA))+    (exp (gen) (mul (rec eA) eB l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) (mul eB l)) eA))+      (send (cat (exp (gen) (mul eB l)) eA))))+  (label 89)+  (parent 62)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 90)+  (parent 63)+  (unrealized (0 3))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB rndx) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB w))) (l l) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (D B) (e eB) (l l-0) (e l) (eB l-0) (e l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eB e l l-0)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 91)+  (parent 65)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA rndx) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) w e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA e l l-0)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 92)+  (parent 67)+  (unrealized (0 3))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (eA eB rndx) (w expt)+    (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen eA eB l-0 l-1)+  (operation encryption-test (displaced 6 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 93)+  (parent 69)+  (unrealized (0 3))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 94)+  (parent 71)+  (unrealized (0 3))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) w))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))+  (label 95)+  (parent 73)+  (unrealized (0 3))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w l))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation encryption-test (displaced 6 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 96)+  (parent 75)+  (unrealized (0 3))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (eA eB l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) e))+  (deflistener (cat (exp (gen) (rec eA)) eB))+  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))+    ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec eA)) eB))+    (exp (gen) (mul (rec eA) eB)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) e))+      (send (cat (exp (gen) (mul (rec eA) eB)) e)))+    ((recv (cat (exp (gen) (rec eA)) eB))+      (send (cat (exp (gen) (rec eA)) eB))))+  (label 97)+  (parent 80)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (eA eB l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) e))+  (deflistener (cat (exp (gen) eB) eA))+  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))+    ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (uniq-gen eA eB l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) eB) eA))+    (exp (gen) (mul (rec eA) eB)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) e))+      (send (cat (exp (gen) (mul (rec eA) eB)) e)))+    ((recv (cat (exp (gen) eB) eA)) (send (cat (exp (gen) eB) eA))))+  (label 98)+  (parent 80)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3))+    ((5 0) (1 3)) ((5 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) l-1))+      (send (cat (exp (gen) (mul (rec eA) eB)) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 99)+  (parent 87)+  (unrealized (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul (rec eB) e e)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eB l-0 e)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) e e)))+      (send (cat (gen) (mul (rec eB) e e)))))+  (label 100)+  (parent 90)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) eA)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) eA))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) eA)) (send (cat (gen) eA))))+  (label 101)+  (parent 90)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 eA eB e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) e)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) e)))+      (send (cat (gen) (mul eA (rec eB) e))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 102)+  (parent 90)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) l-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) l-0)))+      (send (cat (gen) (mul eA (rec eB) l-0)))))+  (label 103)+  (parent 90)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul eA (rec eB) l-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) l-0)))+      (send (cat (gen) (mul eA (rec eB) l-0)))))+  (label 104)+  (parent 90)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) l-1)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) l-1)))+      (send (cat (gen) (mul eA (rec eB) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 105)+  (parent 90)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx)+    (w-0 expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) w))+  (deflistener (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))+    (exp (gen) (mul (rec eA) eB w)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((recv (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))+      (send (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))))+  (label 106)+  (parent 90)+  (unrealized (5 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB rndx) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB w))) (l l) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))+    (D B) (e eB) (l l-0) (e l) (eB l-0) (e l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eB e l l-0)+  (operation generalization deleted (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 107)+  (parent 91)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (A D) (B B) (C B) (D D) (hl (exp (gen) l-0))+        (he (exp (gen) (mul eB w))) (lA l) (lB l-0) (eA e) (eB eB))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e-0)) (l l-0) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) e-0 e-0))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) e-0 e-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e-0 e-0))) kh)))+  (neq ((exp (gen) (mul (rec e) e-0 e-0)) (gen)) ((exp (gen) e-0) (gen))+    (D B) (e-0 e) (l-0 l) (e-0 l-0) (e l) (e-0 l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l e l-0 e-0)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-1)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) e-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) e-0 e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) e-0 e-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) e-0 e-0)))))+  (label 108)+  (parent 92)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) eA)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e))))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e))))+      (send (cat (exp (gen) e) (mul eA (rec e))))))+  (label 109)+  (parent 92)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 eA e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) e-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e-0))) kh)))+  (neq ((exp (gen) (mul eA (rec e) e-0)) (gen)) ((exp (gen) e-0) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA e)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) e-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) e-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) e-0))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))+  (label 110)+  (parent 92)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) l-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec e) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA e l-0)+  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))))+  (label 111)+  (parent 92)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec e) l-0))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec e) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA e l-0)+  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eA (rec e) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))))+  (label 112)+  (parent 92)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) l-1)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec e) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) l-1)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 113)+  (parent 92)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA rndx) (w expt) (e l l-0 rndx)+    (w-0 expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) w e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) w))+  (deflistener (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) w e e)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA e l l-0)+  (operation nonce-test+    (added-listener+      (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))+    (exp (gen) (mul (rec eA) w e e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))+      (send (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))))+  (label 114)+  (parent 92)+  (unrealized (5 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eB e l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l-1) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) e-0 e-0))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) e-0 e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e-0 e-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) e-0 e-0)) (gen))+    ((exp (gen) e-0) (gen)) (D B) (e-0 eB) (l-1 l-0) (e-0 l-1) (eB l-0)+    (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 eB l-1 e-0)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) e-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e-0 e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) e-0 e-0)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) e-0 e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 115)+  (parent 93)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA e l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) e-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) eA)) (l l-1) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA e-0))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e-0) (gen)) (D B) (eA e-0)+    (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 eA l-1 e-0)+  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-1)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e))))+      (send (cat (exp (gen) e) (mul eA (rec e)))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 116)+  (parent 93)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (0 3)) ((5 2) (4 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test (displaced 6 5 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB))))+      (send (cat (exp (gen) e) (mul eA (rec eB)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 117)+  (parent 93)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eA eB e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) e-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) e-0))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)) ((6 2) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA e-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e-0)) (gen)) ((exp (gen) e-0) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) e-0)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 118)+  (parent 93)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 eA eB l-1)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 119)+  (parent 93)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 eA eB l-1)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 120)+  (parent 93)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) l-2)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-2))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)) ((6 0) (0 3)) ((6 0) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-2)) (gen)) ((exp (gen) l-2) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-2)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-2)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-2))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 121)+  (parent 93)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (eA eB rndx) (w expt)+    (l e l-0 l-1 rndx) (w-0 expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w e))) kh)))+  (neq ((exp (gen) (mul w e)) (gen))+    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen eA eB l-0 l-1)+  (operation nonce-test+    (added-listener+      (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))+    (exp (gen) (mul (rec eA) eB w e)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))+      (send (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))))+  (label 122)+  (parent 93)+  (unrealized (6 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) e e)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eB l l-0 e)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) e e)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) e e)))))+  (label 123)+  (parent 94)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) eA)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0))))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0))))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0))))))+  (label 124)+  (parent 94)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen l eA eB l-1)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 125)+  (parent 94)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB))))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB))))+      (send (cat (exp (gen) l-0) (mul eA (rec eB))))))+  (label 126)+  (parent 94)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))+      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))))+  (label 127)+  (parent 94)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 128)+  (parent 94)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx)+    (w-0 expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (deflistener (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))+  (neq ((exp (gen) (mul w l-0)) (gen))+    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (added-listener+      (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))+    (exp (gen) (mul (rec eA) eB w l-0)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((recv (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))+      (send (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))))+  (label 129)+  (parent 94)+  (unrealized (5 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eB l-0 e)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))))+  (label 130)+  (parent 95)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) eA)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec l))))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA l l-0 e)+  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec l))))+      (send (cat (exp (gen) l) (mul eA (rec l))))))+  (label 131)+  (parent 95)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (0 3)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen l eA eB l-1)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 132)+  (parent 95)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))+      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))))+  (label 133)+  (parent 95)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB))))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB))))+      (send (cat (exp (gen) l-0) (mul eA (rec eB))))))+  (label 134)+  (parent 95)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 135)+  (parent 95)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx)+    (w-0 expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) w))+  (deflistener (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (added-listener+      (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))+    (exp (gen) (mul (rec eA) eB w l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((recv (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))+      (send (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))))+  (label 136)+  (parent 95)+  (unrealized (5 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))+    (D B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen l eB l-0 l-1 e)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 137)+  (parent 96)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) eA)) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0))))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-1)+    (eA l) (e l-1) (eA l-1) (e l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen l eA l-0 l-1 e)+  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0))))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0)))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 138)+  (parent 96)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA eB l-2 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)) ((6 2) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) e)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 139)+  (parent 96)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 140)+  (parent 96)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 141)+  (parent 96)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 6 5 ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB))))+      (send (cat (exp (gen) l-1) (mul eA (rec eB)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 142)+  (parent 96)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-2)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 0) (0 3)) ((5 0) (4 0)) ((6 0) (0 3)) ((6 0) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-2)) (gen)) ((exp (gen) l-2) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-2)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 143)+  (parent 96)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB rndx) (w expt) (l l-0 l-1 rndx)+    (w-0 expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w l))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w l))) kh)))+  (neq ((exp (gen) (mul w l)) (gen))+    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test+    (added-listener+      (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))+    (exp (gen) (mul (rec eA) eB w l)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))+      (send (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))))+  (label 144)+  (parent 96)+  (unrealized (6 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) (rec eA)) eB))+  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3))+    ((5 0) (1 3)) ((5 1) (4 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec eA)) eB))+    (exp (gen) (mul (rec eA) eB)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) l-1))+      (send (cat (exp (gen) (mul (rec eA) eB)) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) (rec eA)) eB))+      (send (cat (exp (gen) (rec eA)) eB))))+  (label 145)+  (parent 99)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) eB) eA))+  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3))+    ((5 0) (1 3)) ((5 1) (4 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) eB) eA))+    (exp (gen) (mul (rec eA) eB)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec eA) eB)) l-1))+      (send (cat (exp (gen) (mul (rec eA) eB)) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) eB) eA)) (send (cat (exp (gen) eB) eA))))+  (label 146)+  (parent 99)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA eB rndx) (w expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w)))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) w)) (w-1 w))+    (gen) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w)))+      (send (cat (gen) (mul eA (rec eB) w))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 147)+  (parent 106)+  (unrealized (1 3) (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul (rec eB) w e e)))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)+    (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w e e)))+      (send (cat (gen) (mul (rec eB) w e e))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 148)+  (parent 106)+  (unrealized (1 3) (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w)))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 149)+  (parent 106)+  (unrealized (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA eB rndx)+    (w expt) (e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w e)))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-0) (eA l) (eB l-0)+    (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w e)))+      (send (cat (gen) (mul eA (rec eB) w e))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 150)+  (parent 106)+  (unrealized (1 3) (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w l-0)))+      (send (cat (gen) (mul eA (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 151)+  (parent 106)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul eA (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w l-0)))+      (send (cat (gen) (mul eA (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 152)+  (parent 106)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w l-1)))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w l-1)))+      (send (cat (gen) (mul eA (rec eB) w l-1))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 153)+  (parent 106)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA e rndx) (w expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (operation nonce-test+    (contracted (eA-0 eA) (w-0 (mul eA (rec e) (rec e) w)) (e-0 e)+      (w-1 w)) (gen) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 154)+  (parent 114)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e-0))) (l l-0) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w e-0 e-0))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w e-0 e-0)))+  (deflistener (cat (exp (gen) e-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e-0 e-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w e-0 e-0)) (gen))+    ((exp (gen) (mul w e-0)) (gen)) (D B) (e-0 e) (l-0 l) (e-0 l-0)+    (e l) (e-0 l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 e-0)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w e-0 e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w e-0 e-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w e-0 e-0))))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))+  (label 155)+  (parent 114)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w (rec e))))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w (rec e))))+      (send (cat (exp (gen) e) (mul eA w (rec e)))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 156)+  (parent 114)+  (unrealized (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA e rndx)+    (w expt) (e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w e-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w e-0)))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e-0))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w e-0)) (gen))+    ((exp (gen) (mul w e-0)) (gen)) (D B) (eA e) (l l-0) (eA l) (e l-0)+    (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w e-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w e-0))))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))+  (label 157)+  (parent 114)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w l-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA e) (l l-0) (eA l) (e l-0)+    (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 158)+  (parent 114)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec e) w l-0))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA e) (l-0 l) (eA l-0) (e l)+    (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eA (rec e) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 159)+  (parent 114)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-1)))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA e) (l l-0) (eA l) (e l-0)+    (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-1))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 160)+  (parent 114)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA e l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) e-0)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) eA)) (l l-1) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener eA)+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))+    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))+    ((5 2) (4 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA e-0))) kh)))+  (neq ((exp (gen) eA) (gen)) ((exp (gen) e-0) (gen)) (D B) (eA e-0)+    (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (4 0))+  (uniq-gen l-0 eA l-1 e-0)+  (operation nonce-test (added-listener eA) (mul eA (rec e)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) eA)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e))))+      (send (cat (exp (gen) e) (mul eA (rec e)))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eA) (send eA)))+  (label 161)+  (parent 116)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 eA eB e rndx) (w expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec e) w))+      (e-0 e) (w-1 w)) (gen) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 162)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0))) (l l-1) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e-0 e-0)))+    (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0 e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0 e-0)))+        kh)))+  (neq ((exp (gen) (mul (rec eB) w e-0 e-0)) (gen))+    ((exp (gen) (mul w e-0)) (gen)) (D B) (e-0 eB) (l-1 l-0) (e-0 l-1)+    (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 e-0)+  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-1)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e-0 e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0 e-0)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0 e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))+  (label 163)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)+    (w expt) (l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e-0)) (gen))+    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA l-1 e-0)+  (operation nonce-test (displaced 7 1 participant 3) (exp (gen) e-1)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))+  (label 164)+  (parent 122)+  (unrealized (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB rndx)+    (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-0) (eA l) (eB l-0)+    (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test (displaced 7 5 participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) w))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 165)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eA eB e rndx) (w expt) (e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w e-0)))+    (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e-0)) (gen))+    ((exp (gen) (mul w e-0)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 166)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)+    (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-1)))+    (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1)+  (operation nonce-test (displaced 7 2 ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))+  (label 167)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)+    (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-1)))+    (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-1 l-0) (eA l-1)+    (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1)+  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))+  (label 168)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-2)))+    (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) w))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-2)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-2))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) w)) (send (cat (exp (gen) l-2) w)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 169)+  (parent 122)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx) (w expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec l-0) w))+      (l-1 l-0) (w-1 w)) (gen) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 170)+  (parent 129)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w e e)))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)+    (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 e)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w e e)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w e e))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 171)+  (parent 129)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA w (rec l-0))))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul eA w (rec l-0)))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 172)+  (parent 129)+  (unrealized (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB l-1 rndx)+    (w expt) (e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-1) (eA l) (eB l-1)+    (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 173)+  (parent 129)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 174)+  (parent 129)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 175)+  (parent 129)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 176)+  (parent 129)+  (unrealized (1 3) (4 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx) (w expt))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec l-0) w))+      (l-1 l-0) (w-1 w)) (gen) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 177)+  (parent 136)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0) e e)))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)+    (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0) e e)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0) e e))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 178)+  (parent 136)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec l) w)))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA l l-0 e)+  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec l) w)))+      (send (cat (exp (gen) l) (mul eA (rec l) w))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 179)+  (parent 136)+  (unrealized (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB l-1 rndx)+    (w expt) (e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1) (eB l)+    (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 180)+  (parent 136)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 181)+  (parent 136)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) w))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))+  (label 182)+  (parent 136)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) w))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 183)+  (parent 136)+  (unrealized (1 3) (4 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx) (w expt))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec l-1) w))+      (l-2 l-1) (w-1 w)) (gen) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 184)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e))) (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w e e)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-1 l) (e l-1) (eB l)+    (e l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 e)+  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w e e)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w e e))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 185)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))+    (D B) (eA e) (l l-1) (eA l) (e l-1) (eA l-1) (e l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 l-1 e)+  (operation nonce-test (displaced 7 1 participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 186)+  (parent 144)+  (unrealized (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA eB l-2 rndx) (w expt) (e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))+    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-0) (eA l) (eB l-0)+    (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) w e)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 187)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 7 2 ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))+  (label 188)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))+  (label 189)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "7 in cohort - 7 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) w))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 7 5 ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))+  (label 190)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)+    (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) w))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w l-2)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) w)) (send (cat (exp (gen) l-2) w)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 191)+  (parent 144)+  (unrealized (1 3) (4 0))+  (comment "8 in cohort - 8 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-1))+  (deflistener (cat (gen) (mul (rec eA) eB l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((recv (cat (gen) (mul (rec eA) eB l-1)))+      (send (cat (gen) (mul (rec eA) eB l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 192)+  (parent 147)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eB rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w)))+      (send (cat (gen) (mul (rec eB) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))))+  (label 193)+  (parent 147)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w)))+  (deflistener (cat (gen) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))+  (label 194)+  (parent 147)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul eB (rec e) l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) l-1))+  (deflistener (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul eB (rec e) l-1)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB e l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB (rec e) l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((recv (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1)))+      (send (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 195)+  (parent 148)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul w e e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eB)+  (absent (eB (mul w e e)))+  (operation nonce-test (added-absence eB (mul w e e)) (mul w e e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))))+  (label 196)+  (parent 148)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (absent (e (mul (rec eB) w)))+  (operation nonce-test (added-absence e (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w)))+      (send (cat (gen) (mul (rec eB) w))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))+  (label 197)+  (parent 148)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e eA l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e (rec eA) l-1)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-1)))+      (send (cat (exp (gen) e) (mul (rec eA) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 198)+  (parent 149)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) w))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA w))+  (operation nonce-test (added-absence eA w) w (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA))))))+  (label 199)+  (parent 149)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w)))+  (deflistener (cat (exp (gen) e) w))+  (deflistener eA)+  (precedes ((0 2) (5 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (operation nonce-test (added-listener eA) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv eA) (send eA)))+  (label 200)+  (parent 149)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-2)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-2))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))+  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-2)) (send (cat (gen) l-2)))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 201)+  (parent 150)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB rndx)+    (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB eA)+  (absent (eA (mul (rec eB) w e)))+  (operation nonce-test (added-absence eA (mul (rec eB) w e))+    (mul (rec eB) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w e)))+      (send (cat (gen) (mul (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 202)+  (parent 150)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)+    (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (absent (eB (mul eA w e)))+  (operation nonce-test (added-absence eB (mul eA w e)) (mul eA w e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w e))) (send (cat (gen) (mul eA w e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 203)+  (parent 150)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 204)+  (parent 151)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w l-0)))+  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))+    (mul (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w l-0)))+      (send (cat (gen) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 205)+  (parent 151)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w l-0)))+  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w l-0)))+      (send (cat (gen) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))))+  (label 206)+  (parent 151)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (absent (l-0 (mul eA (rec eB) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w)))+      (send (cat (gen) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))+  (label 207)+  (parent 151)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 208)+  (parent 152)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w l-0)))+  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))+    (mul (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w l-0)))+      (send (cat (gen) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 209)+  (parent 152)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w l-0)))+  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul eA w l-0)))+      (send (cat (gen) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))))+  (label 210)+  (parent 152)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (absent (l-0 (mul eA (rec eB) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w)))+      (send (cat (gen) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))+  (label 211)+  (parent 152)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 212)+  (parent 153)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-2)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-2))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 0) (5 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))+  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-2)) (send (cat (gen) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 213)+  (parent 153)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) w l-1)))+  (operation nonce-test (added-absence eA (mul (rec eB) w l-1))+    (mul (rec eB) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w l-1)))+      (send (cat (gen) (mul (rec eB) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 214)+  (parent 153)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (absent (eB (mul eA w l-1)))+  (operation nonce-test (added-absence eB (mul eA w l-1)) (mul eA w l-1)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w l-1)))+      (send (cat (gen) (mul eA w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 215)+  (parent 153)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (absent (l-1 (mul eA (rec eB) w)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w)))+      (send (cat (gen) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 216)+  (parent 153)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (gen) (mul (rec eA) e e)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (operation nonce-test+    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (gen) (mul (rec eA) e e)))+      (send (cat (gen) (mul (rec eA) e e)))))+  (label 217)+  (parent 154)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (gen) (mul (rec eA) e e l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul e l-1)) (gen))+    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (gen) (mul (rec eA) e e l-1)))+      (send (cat (gen) (mul (rec eA) e e l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 218)+  (parent 154)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 e rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec e) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul (rec e) (rec e) w)))+  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w))+    (mul (rec e) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))))+  (label 219)+  (parent 154)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (deflistener (cat (gen) (mul w e e)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (absent (e (mul eA w)))+  (operation nonce-test (added-absence e (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e)))))+  (label 220)+  (parent 154)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul e e (rec e-0)))) (l l-0) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul e e (rec e-0))) (gen))+    (D B) (e-0 e) (l-0 l) (e-0 l-0) (e l) (e-0 l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e e-0)+  (operation nonce-test+    (contracted (e-1 e) (w (mul e e (rec e-0) (rec e-0))) (e-2 e-0))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul e e (rec e-0))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0))))+      (send (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0))))))+  (label 221)+  (parent 155)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul e e (rec e-0) l-1))) (l l-0) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul e l-1)) (gen))+    ((exp (gen) (mul e e (rec e-0) l-1)) (gen)) (D B) (e-0 e) (l-0 l)+    (e-0 l-0) (e l) (e-0 l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e e-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul e e (rec e-0) l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul e l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0) l-1)))+      (send (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 222)+  (parent 155)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e e-0 e-0))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e e-0))) (l l) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e-0) (mul w e e)))+  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e e-0 e-0)))+        kh)))+  (neq ((exp (gen) (mul w e e e-0)) (gen))+    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (e e-0) (l-0 l) (e l-0)+    (e-0 l) (e l) (e-0 l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e e-0)+  (absent (e-0 (mul w e e)))+  (operation nonce-test (added-absence e-0 (mul w e e)) (mul w e e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e e-0 e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e e e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e-0) (mul w e e)))+      (send (cat (exp (gen) e-0) (mul w e e))))+    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))+      (send (cat (exp (gen) e) (mul w e-0 e-0)))))+  (label 223)+  (parent 155)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e-0)))) (l l-0) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec e) w)) (gen))+    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 e) (l-0 l)+    (e-0 l-0) (e l) (e-0 l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 e-0)+  (absent (e-0 (mul (rec e) (rec e) w)))+  (operation nonce-test (added-absence e-0 (mul (rec e) (rec e) w))+    (mul (rec e) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))+    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))))+  (label 224)+  (parent 155)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) e) (mul (rec eA) e)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (operation nonce-test+    (contracted (eA-0 eA) (w (mul (rec eA) e)) (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) e) (mul (rec eA) e)))+      (send (cat (exp (gen) e) (mul (rec eA) e)))))+  (label 225)+  (parent 156)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) e l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul e l-1)) (gen))+    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (mul (rec eA) e l-1)))+      (send (cat (exp (gen) e) (mul (rec eA) e l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 226)+  (parent 156)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul w (rec e))))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul w (rec e))))+  (operation nonce-test (added-absence eA (mul w (rec e)))+    (mul w (rec e)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul w (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e)))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA))))))+  (label 227)+  (parent 156)+  (unrealized (0 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (deflistener (cat (exp (gen) e) (mul w e)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (absent (e (mul eA w)))+  (operation nonce-test (added-absence e (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (cat (exp (gen) e) (mul w e)))+      (send (cat (exp (gen) e) (mul w e)))))+  (label 228)+  (parent 156)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 eA e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (operation nonce-test+    (contracted (eA-0 eA) (e-1 e) (w (mul (rec eA) e e (rec e-0)))+      (e-2 e-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0))))+      (send (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))+  (label 229)+  (parent 157)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA e e-0 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-2))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-2))+  (deflistener (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0) l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e-0))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) e e l-2)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0) l-2)))+      (send (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0) l-2))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 230)+  (parent 157)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 e rndx)+    (w expt) (e-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w e-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))+  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w e-0)) (gen))+    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul (rec e) (rec e) w e-0)))+  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w e-0))+    (mul (rec e) (rec e) w e-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w e-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w e-0))))+    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))+      (send (cat (exp (gen) e-0) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))+  (label 231)+  (parent 157)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)+    (w expt) (e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e-0 e-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e e-0))) (l l-0) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e-0) (mul eA w e)))+  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e-0 e-0)))+        kh)))+  (neq ((exp (gen) (mul eA w e e-0)) (gen))+    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (eA e-0) (l l-0) (eA l)+    (e-0 l-0) (eA l-0) (e-0 l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e-0)+  (absent (e-0 (mul eA w e)))+  (operation nonce-test (added-absence e-0 (mul eA w e)) (mul eA w e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e-0 e-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w e e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e-0) (mul eA w e)))+      (send (cat (exp (gen) e-0) (mul eA w e))))+    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))+      (send (cat (exp (gen) e) (mul w e-0 e-0))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 232)+  (parent 157)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e (rec l-0)))+      (l-1 l-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))+      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))))+  (label 233)+  (parent 158)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul e l-1)) (gen))+    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 234)+  (parent 158)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w l-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 eA)+  (absent (eA (mul (rec e) (rec e) w l-0)))+  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w l-0))+    (mul (rec e) (rec e) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 235)+  (parent 158)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0 e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w e e)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 e)) (gen))+    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (absent (e (mul eA w l-0)))+  (operation nonce-test (added-absence e (mul eA w l-0)) (mul eA w l-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-0 e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w l-0)))+      (send (cat (exp (gen) e) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w e e)))+      (send (cat (exp (gen) l-0) (mul w e e)))))+  (label 236)+  (parent 158)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (absent (l-0 (mul eA (rec e) (rec e) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec e) (rec e) w))+    (mul eA (rec e) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))+  (label 237)+  (parent 158)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e (rec l-0)))+      (l-1 l-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))+      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))))+  (label 238)+  (parent 159)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) e e l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul e l-1)) (gen))+    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l-0 l)+    (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul e l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 239)+  (parent 159)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w l-0))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l-0 l)+    (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 eA)+  (absent (eA (mul (rec e) (rec e) w l-0)))+  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w l-0))+    (mul (rec e) (rec e) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 240)+  (parent 159)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 e))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w e e)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 e)) (gen))+    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l-0 l) (eA l-0)+    (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (absent (e (mul eA w l-0)))+  (operation nonce-test (added-absence e (mul eA w l-0)) (mul eA w l-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eA w l-0 e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w l-0)))+      (send (cat (exp (gen) e) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w e e)))+      (send (cat (exp (gen) l-0) (mul w e e)))))+  (label 241)+  (parent 159)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec e) w))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (absent (l-0 (mul eA (rec e) (rec e) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec e) (rec e) w))+    (mul eA (rec e) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eA (rec e) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))+  (label 242)+  (parent 159)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e (rec l-1)))+      (l-2 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 243)+  (parent 160)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) e e)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul e l-1)) (gen))+    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) e e)))+      (send (cat (exp (gen) l-1) (mul (rec eA) e e))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 244)+  (parent 160)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA e l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-2))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-2))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 0) (5 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) e e l-2)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 245)+  (parent 160)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec e) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (absent (eA (mul (rec e) (rec e) w l-1)))+  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w l-1))+    (mul (rec e) (rec e) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 246)+  (parent 160)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1 e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w e e)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 e e)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1 e)) (gen))+    ((exp (gen) (mul w l-1 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 e)+  (absent (e (mul eA w l-1)))+  (operation nonce-test (added-absence e (mul eA w l-1)) (mul eA w l-1)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-1 e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w l-1)))+      (send (cat (exp (gen) e) (mul eA w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w e e)))+      (send (cat (exp (gen) l-1) (mul w e e))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 247)+  (parent 160)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (absent (l-1 (mul eA (rec e) (rec e) w)))+  (operation nonce-test (added-absence l-1 (mul eA (rec e) (rec e) w))+    (mul eA (rec e) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 248)+  (parent 160)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 eA eB e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) (mul (rec eA) eB e)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (e-0 e) (w (mul (rec eA) eB e)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) (mul (rec eA) eB e)))+      (send (cat (gen) (mul (rec eA) eB e)))))+  (label 249)+  (parent 162)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-2)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) (mul (rec eA) eB e l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) (mul (rec eA) eB e l-2)))+      (send (cat (gen) (mul (rec eA) eB e l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 250)+  (parent 162)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB e rndx)+    (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB eA)+  (absent (eA (mul (rec eB) (rec e) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w))+    (mul (rec eB) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))))+  (label 251)+  (parent 162)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA e rndx)+    (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (absent (eB (mul eA (rec e) w)))+  (operation nonce-test (added-absence eB (mul eA (rec e) w))+    (mul eA (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))+  (label 252)+  (parent 162)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 eB e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB e (rec e-0)))) (l l-1)+    (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul eB e (rec e-0))) (gen))+    (D B) (e-0 eB) (l-1 l-0) (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB e-0)+  (operation nonce-test+    (contracted (eB-0 eB) (e-1 e) (w (mul eB e (rec e-0) (rec e-0)))+      (e-2 e-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul eB e (rec e-0))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0))))+      (send (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0))))))+  (label 253)+  (parent 163)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB e e-0 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB e (rec e-0) l-2)))+    (l l-1) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0) l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul eB e (rec e-0) l-2)) (gen)) (D B) (e-0 eB)+    (l-1 l-0) (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB e-0 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul eB e (rec e-0) l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0) l-2)))+      (send (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0) l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 254)+  (parent 163)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)+    (l-1 e-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 eB))) (l l-1)+    (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 e-0))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0 e-0 eB)))+        kh)))+  (neq ((exp (gen) (mul w e-0 e-0)) (gen))+    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (e-0 eB) (l-1 l-0)+    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e-0 eB)+  (absent (eB (mul (rec e) w e-0 e-0)))+  (operation nonce-test (added-absence eB (mul (rec e) w e-0 e-0))+    (mul (rec e) w e-0 e-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e-0 e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))+      (send (cat (exp (gen) e) (mul (rec e) w e-0 e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w eB)))+      (send (cat (exp (gen) e-0) (mul w eB)))))+  (label 255)+  (parent 163)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec e-0)))) (l l-1)+    (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 eB) (l-1 l-0)+    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 e-0)+  (absent (e-0 (mul (rec eB) (rec e) w)))+  (operation nonce-test (added-absence e-0 (mul (rec eB) (rec e) w))+    (mul (rec eB) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))))+  (label 256)+  (parent 163)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 e eA e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul e (rec eA) e-0))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e-0) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l)+    (e e-0))+  (deflistener (cat (exp (gen) e) (mul (rec eA) e-0)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e e-0))) kh)))+  (neq ((exp (gen) e-0) (gen)) ((exp (gen) (mul e (rec eA) e-0)) (gen))+    (D B) (eA e) (l-0 l-1) (eA l-0) (e l-1) (eA l-1) (e l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e eA)+  (operation nonce-test+    (contracted (eA-0 eA) (e-1 e-0) (w (mul (rec eA) e-0))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) e-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) e-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e-0) (one)))+      (send (cat (exp (gen) e-0) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))+    ((recv (cat (exp (gen) e) (mul (rec eA) e-0)))+      (send (cat (exp (gen) e) (mul (rec eA) e-0)))))+  (label 257)+  (parent 164)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 e eA e-0 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul e (rec eA) e-0 l-2)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e-0 l-2))) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e-0) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l)+    (e e-0))+  (deflistener (cat (exp (gen) e) (mul (rec eA) e-0 l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e e-0 l-2)))+        kh)))+  (neq ((exp (gen) (mul e-0 l-2)) (gen))+    ((exp (gen) (mul e (rec eA) e-0 l-2)) (gen)) (D B) (eA e) (l-0 l-1)+    (eA l-0) (e l-1) (eA l-1) (e l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e eA l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) e-0 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul e-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e-0) l-2)) (send (cat (exp (gen) e-0) l-2)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))+    ((recv (cat (exp (gen) e) (mul (rec eA) e-0 l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) e-0 l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 258)+  (parent 164)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)+    (l-1 e-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l-1) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e-0 (rec eA))) (gen))+    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e-0 eA)+  (absent (eA (mul (rec e) w)))+  (operation nonce-test (added-absence eA (mul (rec e) w))+    (mul (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))+      (send (cat (exp (gen) e-0) (mul w (rec eA))))))+  (label 259)+  (parent 164)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)+    (w expt) (l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (deflistener eA)+  (precedes ((0 2) (6 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e-0)) (gen))+    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA l-1 e-0)+  (operation nonce-test (added-listener eA) (mul eA (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv eA) (send eA)))+  (label 260)+  (parent 164)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 e eA eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e eB))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul e (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB)))+      (send (cat (exp (gen) e) (mul (rec eA) eB)))))+  (label 261)+  (parent 165)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 e eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) eB l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e eB l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul e (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 262)+  (parent 165)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB rndx)+    (w expt) (l-1 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec eB) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) w)))+      (send (cat (exp (gen) e) (mul (rec eB) w))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA))))))+  (label 263)+  (parent 165)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA rndx)+    (w expt) (l-1 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))))+  (label 264)+  (parent 165)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eA eB e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0))))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (e-1 e)+      (w (mul (rec eA) eB e (rec e-0))) (e-2 e-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0))))+      (send (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0)))))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 265)+  (parent 166)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 self-1 name)+    (hl hl-0 base) (l l-0 l-1 l-2 eA eB e e-0 l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-3)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-3))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-3))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0) l-3)))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0))+    ((8 0) (6 0)) ((8 1) (4 0)))+  (fn-of ("principal-of" (l-3 self-1) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-3))) kh)))+  (neq ((exp (gen) (mul e l-3)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-3)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-3)) (send (cat (exp (gen) e) l-3)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0) l-3)))+      (send (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0) l-3))))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 266)+  (parent 166)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eB e rndx) (w expt) (e-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e-0))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e-0)) (gen))+    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB eA)+  (absent (eA (mul (rec eB) (rec e) w e-0)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w e-0))+    (mul (rec eB) (rec e) w e-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))+      (send (cat (exp (gen) e-0) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 267)+  (parent 166)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eA e rndx) (w expt) (e-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w e-0))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w eB)))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w e-0)) (gen))+    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (absent (eB (mul eA (rec e) w e-0)))+  (operation nonce-test (added-absence eB (mul eA (rec e) w e-0))+    (mul eA (rec e) w e-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) w e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w eB)))+      (send (cat (exp (gen) e-0) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 268)+  (parent 166)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (e-0 e)+      (w (mul (rec eA) eB e (rec l-1))) (l-2 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))))+  (label 269)+  (parent 167)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 eA eB e l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-2)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 270)+  (parent 167)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) (rec e) w l-1)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w l-1))+    (mul (rec eB) (rec e) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA))))))+  (label 271)+  (parent 167)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)+    (w expt) (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA l-1 eB)+  (absent (eB (mul eA (rec e) w l-1)))+  (operation nonce-test (added-absence eB (mul eA (rec e) w l-1))+    (mul eA (rec e) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))))+  (label 272)+  (parent 167)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)+    (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1)+  (absent (l-1 (mul eA (rec eB) (rec e) w)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) (rec e) w))+    (mul eA (rec eB) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))+  (label 273)+  (parent 167)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB e))) (l l-1)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (e-0 e)+      (w (mul (rec eA) eB e (rec l-1))) (l-2 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))))+  (label 274)+  (parent 168)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 eA eB e l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB e l-2)))+    (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 D) (l-0 B))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-1 l-0)+    (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 275)+  (parent 168)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l-0)+    (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) (rec e) w l-1)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w l-1))+    (mul (rec eB) (rec e) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA))))))+  (label 276)+  (parent 168)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)+    (w expt) (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l-0) (eA l-1)+    (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA l-1 eB)+  (absent (eB (mul eA (rec e) w l-1)))+  (operation nonce-test (added-absence eB (mul eA (rec e) w l-1))+    (mul eA (rec e) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))))+  (label 277)+  (parent 168)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)+    (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA eB l-1)+  (absent (l-1 (mul eA (rec eB) (rec e) w)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) (rec e) w))+    (mul eA (rec eB) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))+  (label 278)+  (parent 168)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (e-0 e)+      (w (mul (rec eA) eB e (rec l-2))) (l-3 l-2)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2))))+      (send (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 279)+  (parent 169)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-2)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB e)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB e)))+      (send (cat (exp (gen) l-2) (mul (rec eA) eB e))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 280)+  (parent 169)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 self-1 name) (hl base)+    (l l-0 l-1 eA eB e l-2 l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-3)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-3))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-3))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2) l-3)))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)) ((8 0) (6 0)) ((8 1) (4 0)))+  (fn-of ("principal-of" (l-3 self-1) (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-3))) kh)))+  (neq ((exp (gen) (mul e l-3)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-3)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2 l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-3)) (send (cat (exp (gen) e) l-3)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2) l-3)))+      (send (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2) l-3))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 281)+  (parent 169)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-2))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB l-2 eA)+  (absent (eA (mul (rec eB) (rec e) w l-2)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w l-2))+    (mul (rec eB) (rec e) w l-2) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 282)+  (parent 169)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w eB)))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-2)) (gen))+    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA l-2 eB)+  (absent (eB (mul eA (rec e) w l-2)))+  (operation nonce-test (added-absence eB (mul eA (rec e) w l-2))+    (mul eA (rec e) w l-2) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-2)))+      (send (cat (exp (gen) e) (mul eA (rec e) w l-2))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w eB)))+      (send (cat (exp (gen) l-2) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 283)+  (parent 169)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (absent (l-2 (mul eA (rec eB) (rec e) w)))+  (operation nonce-test (added-absence l-2 (mul eA (rec eB) (rec e) w))+    (mul eA (rec eB) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 284)+  (parent 169)+  (unrealized (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (gen) (mul (rec eA) eB l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-1 l-0) (w (mul (rec eA) eB l-0)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (gen) (mul (rec eA) eB l-0)))+      (send (cat (gen) (mul (rec eA) eB l-0)))))+  (label 285)+  (parent 170)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0 l-1)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (gen) (mul (rec eA) eB l-0 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (gen) (mul (rec eA) eB l-0 l-1)))+      (send (cat (gen) (mul (rec eA) eB l-0 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 286)+  (parent 170)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) (rec l-0) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))+    (mul (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))))+  (label 287)+  (parent 170)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (gen) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA (rec l-0) w)))+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))+    (mul eA (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))+  (label 288)+  (parent 170)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))+  (deflistener (cat (gen) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (absent (l-0 (mul eA (rec eB) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))+    ((recv (cat (gen) (mul w l-0))) (send (cat (gen) (mul w l-0)))))+  (label 289)+  (parent 170)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB l-0 (rec e)))) (l l)+    (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul eB l-0 (rec e))) (gen))+    (D B) (e eB) (l l-0) (e l) (eB l-0) (e l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (operation nonce-test+    (contracted (eB-0 eB) (l-1 l-0) (w (mul eB l-0 (rec e) (rec e)))+      (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB l-0 (rec e))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))))+  (label 290)+  (parent 171)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB l-0 (rec e) l-1))) (l l)+    (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul eB l-0 (rec e) l-1)) (gen)) (D B) (e eB) (l l-0)+    (e l) (eB l-0) (e l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eB l-0 (rec e) l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))+      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 291)+  (parent 171)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec l) w e e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eB)+  (absent (eB (mul (rec l) w e e)))+  (operation nonce-test (added-absence eB (mul (rec l) w e e))+    (mul (rec l) w e e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec l) w e e)))+      (send (cat (exp (gen) l) (mul (rec l) w e e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))))+  (label 292)+  (parent 171)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB rndx) (w expt) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-0))) (l l) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e e l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w e e)))+  (deflistener (cat (exp (gen) e) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e l-0)) (gen))+    ((exp (gen) (mul w e l-0)) (gen)) (D B) (e eB) (l l-0) (e l)+    (eB l-0) (e l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l e l-0)+  (absent (l-0 (mul (rec eB) w e e)))+  (operation nonce-test (added-absence l-0 (mul (rec eB) w e e))+    (mul (rec eB) w e e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e)) (recv (exp (gen) (mul w e l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w e e)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w e e))))+    ((recv (cat (exp (gen) e) (mul w l-0)))+      (send (cat (exp (gen) e) (mul w l-0)))))+  (label 293)+  (parent 171)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w)))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 e)+  (absent (e (mul (rec eB) (rec l) w)))+  (operation nonce-test (added-absence e (mul (rec eB) (rec l) w))+    (mul (rec eB) (rec l) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))+  (label 294)+  (parent 171)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e eA l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul e (rec eA) l-0)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e eA l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (w (mul (rec eA) l-0)) (l-1 l-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-0)))+      (send (cat (exp (gen) e) (mul (rec eA) l-0)))))+  (label 295)+  (parent 172)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l e eA l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-0 l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul e (rec eA) l-0 l-1)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e eA l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))+      (send (cat (exp (gen) e) (mul (rec eA) l-0 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 296)+  (parent 172)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul w (rec l-0))))+  (operation nonce-test (added-absence eA (mul w (rec l-0)))+    (mul w (rec l-0)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0)))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA))))))+  (label 297)+  (parent 172)+  (unrealized (0 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA w)))+  (deflistener (cat (exp (gen) e) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-0))) kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w e l-0)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA e l-0)+  (absent (l-0 (mul eA w)))+  (operation nonce-test (added-absence l-0 (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w)))+      (send (cat (exp (gen) l-0) (mul eA w))))+    ((recv (cat (exp (gen) e) (mul w l-0)))+      (send (cat (exp (gen) e) (mul w l-0)))))+  (label 298)+  (parent 172)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1)+      (w (mul (rec eA) eB l-1 (rec e))) (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e)))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 299)+  (parent 173)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 eA eB l-1 e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-1)+    (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 300)+  (parent 173)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)+    (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-1 eA)+  (absent (eA (mul (rec eB) (rec l-1) w e)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w e))+    (mul (rec eB) (rec l-1) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 301)+  (parent 173)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)+    (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-1 eB)+  (absent (eB (mul eA (rec l-1) w e)))+  (operation nonce-test (added-absence eB (mul eA (rec l-1) w e))+    (mul eA (rec l-1) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 302)+  (parent 173)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB rndx)+    (w expt) (e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1)+  (absent (l-1 (mul eA (rec eB) w e)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w e))+    (mul eA (rec eB) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 303)+  (parent 173)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB)))))+  (label 304)+  (parent 174)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 (rec eA) eB l-1)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul l-0 (rec eA) eB l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 305)+  (parent 174)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 306)+  (parent 174)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA w)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w)))+      (send (cat (exp (gen) l-0) (mul eA w))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))))+  (label 307)+  (parent 174)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-1 l)+      (w (mul (rec eA) eB l (rec l-0))) (l-2 l-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))))+  (label 308)+  (parent 175)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l l-1))) kh)))+  (neq ((exp (gen) (mul l l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l l-1)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 309)+  (parent 175)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 eA)+  (absent (eA (mul (rec eB) (rec l) w l-0)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l) w l-0))+    (mul (rec eB) (rec l) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 310)+  (parent 175)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA l l-0 eB)+  (absent (eB (mul eA (rec l) w l-0)))+  (operation nonce-test (added-absence eB (mul eA (rec l) w l-0))+    (mul eA (rec l) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))))+  (label 311)+  (parent 175)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w l)))+  (deflistener (cat (exp (gen) l) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l D) (l-0 B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l l-0)) (gen))+    ((exp (gen) (mul w l l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (absent (l-0 (mul eA (rec eB) w l)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w l))+    (mul eA (rec eB) w l) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w l)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w l))))+    ((recv (cat (exp (gen) l) (mul w l-0)))+      (send (cat (exp (gen) l) (mul w l-0)))))+  (label 312)+  (parent 175)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (absent (l-0 (mul eA (rec eB) (rec l) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) (rec l) w))+    (mul eA (rec eB) (rec l) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))+      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))+  (label 313)+  (parent 175)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)+      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 314)+  (parent 176)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0 l-1)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 315)+  (parent 176)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 0) (5 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-2))) kh)))+  (neq ((exp (gen) (mul l-0 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 316)+  (parent 176)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test+    (added-absence eA (mul (rec eB) (rec l-0) w l-1))+    (mul (rec eB) (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 317)+  (parent 176)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))+    (mul eA (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 318)+  (parent 176)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))+    (mul eA (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 319)+  (parent 176)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (operation nonce-test+    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))+    (mul eA (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 320)+  (parent 176)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (gen) (mul (rec eA) eB l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-1 l-0) (w (mul (rec eA) eB l-0)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (gen) (mul (rec eA) eB l-0)))+      (send (cat (gen) (mul (rec eA) eB l-0)))))+  (label 321)+  (parent 177)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (gen) (mul (rec eA) eB l-0 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (gen) (mul (rec eA) eB l-0 l-1)))+      (send (cat (gen) (mul (rec eA) eB l-0 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 322)+  (parent 177)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) (rec l-0) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))+    (mul (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))))+  (label 323)+  (parent 177)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (gen) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA (rec l-0) w)))+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))+    (mul eA (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))+  (label 324)+  (parent 177)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))+  (deflistener (cat (gen) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0)+  (absent (l-0 (mul eA (rec eB) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))+    ((recv (cat (gen) (mul w l-0))) (send (cat (gen) (mul w l-0)))))+  (label 325)+  (parent 177)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul eB l-0 (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul eB l-0 (rec e))) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (operation nonce-test+    (contracted (eB-0 eB) (w (mul eB l-0 (rec e) (rec e))) (l-1 l-0)+      (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB l-0 (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))))+  (label 326)+  (parent 178)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul eB l-0 (rec e) l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul eB l-0 (rec e) l-1)) (gen)) (D B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB l-0 (rec e) l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))+      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 327)+  (parent 178)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) e e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eB)+  (absent (eB (mul w (rec l-0) e e)))+  (operation nonce-test (added-absence eB (mul w (rec l-0) e e))+    (mul w (rec l-0) e e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) e e)))+      (send (cat (exp (gen) l-0) (mul w (rec l-0) e e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))))+  (label 328)+  (parent 178)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-0))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w e e)))+  (deflistener (cat (exp (gen) e) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e l-0)) (gen))+    ((exp (gen) (mul w e l-0)) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB e l-0)+  (absent (l-0 (mul (rec eB) w e e)))+  (operation nonce-test (added-absence l-0 (mul (rec eB) w e e))+    (mul (rec eB) w e e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w e e)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w e e))))+    ((recv (cat (exp (gen) e) (mul w l-0)))+      (send (cat (exp (gen) e) (mul w l-0)))))+  (label 329)+  (parent 178)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (absent (e (mul (rec eB) w (rec l-0))))+  (operation nonce-test (added-absence e (mul (rec eB) w (rec l-0)))+    (mul (rec eB) w (rec l-0)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0)))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))+  (label 330)+  (parent 178)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e eA l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul e (rec eA) l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul e (rec eA) l-0)) (gen))+    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e eA l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (l-1 l-0) (w (mul (rec eA) l-0))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-0)))+      (send (cat (exp (gen) e) (mul (rec eA) l-0)))))+  (label 331)+  (parent 179)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l e eA l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul e (rec eA) l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul e (rec eA) l-0 l-1)) (gen)) (D B) (eA e) (l-0 l)+    (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e eA l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))+      (send (cat (exp (gen) e) (mul (rec eA) l-0 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 332)+  (parent 179)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul (rec l) w)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul (rec l) w)))+  (operation nonce-test (added-absence eA (mul (rec l) w))+    (mul (rec l) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec l) w)))+      (send (cat (exp (gen) l) (mul (rec l) w))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA))))))+  (label 333)+  (parent 179)+  (unrealized (0 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA rndx) (w expt) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA w)))+  (deflistener (cat (exp (gen) e) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-0))) kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w e l-0)) (gen)) (D B) (eA e) (l-0 l) (eA l-0)+    (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA l e l-0)+  (absent (l-0 (mul eA w)))+  (operation nonce-test (added-absence l-0 (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w)))+      (send (cat (exp (gen) l-0) (mul eA w))))+    ((recv (cat (exp (gen) e) (mul w l-0)))+      (send (cat (exp (gen) e) (mul w l-0)))))+  (label 334)+  (parent 179)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 eA eB l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1)+      (w (mul (rec eA) eB l-1 (rec e))) (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e)))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 335)+  (parent 180)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 eA eB l-1 e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-1 l-2))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 336)+  (parent 180)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)+    (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e (rec eA)))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-1 eA)+  (absent (eA (mul (rec eB) (rec l-1) w e)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w e))+    (mul (rec eB) (rec l-1) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 337)+  (parent 180)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)+    (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-1 eB)+  (absent (eB (mul eA (rec l-1) w e)))+  (operation nonce-test (added-absence eB (mul eA (rec l-1) w e))+    (mul eA (rec l-1) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 338)+  (parent 180)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB rndx)+    (w expt) (e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w e l-1)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-1)+  (absent (l-1 (mul eA (rec eB) w e)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w e))+    (mul eA (rec eB) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 339)+  (parent 180)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))+  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-1 l)+      (w (mul (rec eA) eB l (rec l-0))) (l-2 l-0)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))))+  (label 340)+  (parent 181)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l l-1))) kh)))+  (neq ((exp (gen) (mul l l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0 l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 341)+  (parent 181)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 eA)+  (absent (eA (mul (rec eB) (rec l) w l-0)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l) w l-0))+    (mul (rec eB) (rec l) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 342)+  (parent 181)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA l l-0 eB)+  (absent (eB (mul eA (rec l) w l-0)))+  (operation nonce-test (added-absence eB (mul eA (rec l) w l-0))+    (mul eA (rec l) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))))+  (label 343)+  (parent 181)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l l-0)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w l)))+  (deflistener (cat (exp (gen) l) (mul w l-0)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l l-0)) (gen))+    ((exp (gen) (mul w l l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (absent (l-0 (mul eA (rec eB) w l)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w l))+    (mul eA (rec eB) w l) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w l)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w l))))+    ((recv (cat (exp (gen) l) (mul w l-0)))+      (send (cat (exp (gen) l) (mul w l-0)))))+  (label 344)+  (parent 181)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA eB l l-0)+  (absent (l-0 (mul eA (rec eB) (rec l) w)))+  (operation nonce-test (added-absence l-0 (mul eA (rec eB) (rec l) w))+    (mul eA (rec eB) (rec l) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))+      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))+  (label 345)+  (parent 181)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 (rec eA) eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB)))))+  (label 346)+  (parent 182)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 (rec eA) eB l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul l-0 (rec eA) eB l-1)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 347)+  (parent 182)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA))))))+  (label 348)+  (parent 182)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA w)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w)))+      (send (cat (exp (gen) l-0) (mul eA w))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))))+  (label 349)+  (parent 182)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)+      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 350)+  (parent 183)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))+  (neq ((exp (gen) (mul l-0 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 351)+  (parent 183)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0 l-2))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 0) (5 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-2))) kh)))+  (neq ((exp (gen) (mul l-0 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 352)+  (parent 183)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test+    (added-absence eA (mul (rec eB) (rec l-0) w l-1))+    (mul (rec eB) (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 353)+  (parent 183)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))+    (mul eA (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 354)+  (parent 183)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-0 self) (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))+    (mul eA (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))+  (label 355)+  (parent 183)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (operation nonce-test+    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))+    (mul eA (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))+  (label 356)+  (parent 183)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul (rec eA) eB l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1) (w (mul (rec eA) eB l-1)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul (rec eA) eB l-1)))+      (send (cat (gen) (mul (rec eA) eB l-1)))))+  (label 357)+  (parent 184)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-1)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-1))+  (deflistener (cat (gen) (mul (rec eA) eB l-1 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))+  (neq ((exp (gen) (mul l-1 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))+    ((recv (cat (gen) (mul (rec eA) eB l-1 l-1)))+      (send (cat (gen) (mul (rec eA) eB l-1 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 358)+  (parent 184)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul (rec eA) eB l-1 l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul (rec eA) eB l-1 l-2)))+      (send (cat (gen) (mul (rec eA) eB l-1 l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 359)+  (parent 184)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB l-1 rndx) (w expt)+    (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) (rec l-1) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w))+    (mul (rec eB) (rec l-1) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))))+  (label 360)+  (parent 184)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA l-1 rndx) (w expt)+    (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (absent (eB (mul eA (rec l-1) w)))+  (operation nonce-test (added-absence eB (mul eA (rec l-1) w))+    (mul eA (rec l-1) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))+  (label 361)+  (parent 184)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul w l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (absent (l-1 (mul eA (rec eB) w)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul w l-1))) (send (cat (gen) (mul w l-1)))))+  (label 362)+  (parent 184)+  (unrealized (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul eB l-1 (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul eB l-1 (rec e))) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 e)+  (operation nonce-test+    (contracted (eB-0 eB) (l-2 l-1) (w (mul eB l-1 (rec e) (rec e)))+      (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB l-1 (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e))))))+  (label 363)+  (parent 185)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul eB (rec e) l-1 l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) l-1))+  (deflistener (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))+  (neq ((exp (gen) (mul l-1 l-1)) (gen))+    ((exp (gen) (mul eB (rec e) l-1 l-1)) (gen)) (D B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB e l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB (rec e) l-1 l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))+    ((recv (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1 l-1)))+      (send (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 364)+  (parent 185)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul eB l-1 (rec e) l-2))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) l-2))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e) l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l B) (l-0 D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul eB l-1 (rec e) l-2)) (gen)) (D B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 e l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul eB l-1 (rec e) l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e) l-2)))+      (send (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e) l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 365)+  (parent 185)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w e e)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 e eB)+  (absent (eB (mul (rec l-0) w e e)))+  (operation nonce-test (added-absence eB (mul (rec l-0) w e e))+    (mul (rec l-0) w e e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w e e)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) w e e))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))))+  (label 366)+  (parent 185)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w e e)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-0 D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 e l-1)+  (absent (l-1 (mul (rec eB) w e e)))+  (operation nonce-test (added-absence l-1 (mul (rec eB) w e e))+    (mul (rec eB) w e e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w e e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w e e))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))))+  (label 367)+  (parent 185)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-1 l) (e l-1)+    (eB l) (e l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 e)+  (absent (e (mul (rec eB) (rec l-0) w)))+  (operation nonce-test (added-absence e (mul (rec eB) (rec l-0) w))+    (mul (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))+  (label 368)+  (parent 185)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e eA l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e (rec eA) l-1)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 e eA l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (l-2 l-1) (w (mul (rec eA) l-1))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-1)))+      (send (cat (exp (gen) e) (mul (rec eA) l-1)))))+  (label 369)+  (parent 186)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e eA l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1 l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1 l-1))) kh)))+  (neq ((exp (gen) (mul l-1 l-1)) (gen))+    ((exp (gen) (mul e (rec eA) l-1 l-1)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul l-1 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-1 l-1)))+      (send (cat (exp (gen) e) (mul (rec eA) l-1 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 370)+  (parent 186)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 e eA l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1 l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1 l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul e (rec eA) l-1 l-2)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 e eA l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul (rec eA) l-1 l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) l-1 l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 371)+  (parent 186)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-1) (eA l) (e l-1) (eA l-1) (e l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 e eA)+  (absent (eA (mul (rec l-0) w)))+  (operation nonce-test (added-absence eA (mul (rec l-0) w))+    (mul (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA))))))+  (label 372)+  (parent 186)+  (unrealized (0 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 e l-1)+  (absent (l-1 (mul eA w)))+  (operation nonce-test (added-absence l-1 (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))))+  (label 373)+  (parent 186)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA eB l-2 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-2)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (one)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e))))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))+  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-3 l-2)+      (w (mul (rec eA) eB l-2 (rec e))) (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (one)))+      (send (cat (exp (gen) l-2) (one))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e))))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e)))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 374)+  (parent 187)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-2 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) l-2))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2 l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))+    ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-2))) kh)))+  (neq ((exp (gen) (mul l-2 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-2 l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) l-2)) (send (cat (exp (gen) l-2) l-2)))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2 l-2)))+      (send (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2 l-2))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 375)+  (parent 187)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer self-1 name) (hl base)+    (l l-0 l-1 eA eB l-2 e l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-3)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-2 l-3))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) l-3))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e) l-3)))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)) ((8 0) (6 0)) ((8 1) (4 0)))+  (fn-of ("principal-of" (l-3 self-1) (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-3))) kh)))+  (neq ((exp (gen) (mul l-2 l-3)) (gen))+    ((exp (gen) (mul (rec eA) eB l-2 l-3)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-2 l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) l-3)) (send (cat (exp (gen) l-2) l-3)))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e) l-3)))+      (send (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e) l-3))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 376)+  (parent 187)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eB l-2 rndx) (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-2 eA)+  (absent (eA (mul (rec eB) (rec l-2) w e)))+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-2) w e))+    (mul (rec eB) (rec l-2) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))+      (send (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 377)+  (parent 187)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA l-2 rndx) (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-2 eB)+  (absent (eB (mul eA (rec l-2) w e)))+  (operation nonce-test (added-absence eB (mul eA (rec l-2) w e))+    (mul eA (rec l-2) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))+      (send (cat (exp (gen) l-2) (mul eA (rec l-2) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 378)+  (parent 187)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA eB rndx) (w expt) (e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul w l-2)))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e l-2)) (gen))+    ((exp (gen) (mul w e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (absent (l-2 (mul eA (rec eB) w e)))+  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w e))+    (mul eA (rec eB) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w e)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w l-2)))+      (send (cat (exp (gen) e) (mul w l-2))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 379)+  (parent 187)+  (unrealized (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)+      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))))+  (label 380)+  (parent 188)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-1)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-1))+  (deflistener+    (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))+  (neq ((exp (gen) (mul l-1 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 381)+  (parent 188)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-0 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-2))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l D) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0 l-2))) kh)))+  (neq ((exp (gen) (mul l-0 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l l-1)+    (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 382)+  (parent 188)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-1)+    (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test+    (added-absence eA (mul (rec eB) (rec l-0) w l-1))+    (mul (rec eB) (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA))))))+  (label 383)+  (parent 188)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))+    (mul eA (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))))+  (label 384)+  (parent 188)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))+    (mul eA (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1)))))+  (label 385)+  (parent 188)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (operation nonce-test+    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))+    (mul eA (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))+  (label 386)+  (parent 188)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)+      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))))+  (label 387)+  (parent 189)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-1 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) l-1))+  (deflistener+    (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))+  (neq ((exp (gen) (mul l-1 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))+    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 388)+  (parent 189)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-0 l-2))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) l-2))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 D) (l B) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0 l-2))) kh)))+  (neq ((exp (gen) (mul l-0 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 389)+  (parent 189)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test+    (added-absence eA (mul (rec eB) (rec l-0) w l-1))+    (mul (rec eB) (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA))))))+  (label 390)+  (parent 189)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))+    (mul eA (rec l-0) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))))+  (label 391)+  (parent 189)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-0 D) (l B) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))+    (mul eA (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1)))))+  (label 392)+  (parent 189)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (operation nonce-test+    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))+    (mul eA (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))+  (label 393)+  (parent 189)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 l-1 eA eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB)))))+  (label 394)+  (parent 190)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-1)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-1)))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))+  (neq ((exp (gen) (mul l-1 l-1)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-1)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-1))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 395)+  (parent 190)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-2)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul l-1 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-2))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 396)+  (parent 190)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA))))))+  (label 397)+  (parent 190)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))))+  (label 398)+  (parent 190)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-3 l-1)+      (w (mul (rec eA) eB l-1 (rec l-2))) (l-4 l-2)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2))))+      (send (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 399)+  (parent 191)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-2 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2 l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 0) (5 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-2))) kh)))+  (neq ((exp (gen) (mul l-2 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-2 l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) l-2)) (send (cat (exp (gen) l-2) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2 l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2 l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 400)+  (parent 191)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB l-1)))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 1) (4 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB l-1)))+      (send (cat (exp (gen) l-2) (mul (rec eA) eB l-1))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 401)+  (parent 191)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 self-1 name)+    (l l-0 eA eB l-1 l-2 l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-3)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-3))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-3))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener+    (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2) l-3)))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)) ((8 0) (6 0)) ((8 1) (4 0)))+  (fn-of+    ("principal-of" (l-3 self-1) (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-3))) kh)))+  (neq ((exp (gen) (mul l-1 l-3)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-3)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2 l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-3)) (send (cat (exp (gen) l-1) l-3)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2) l-3)))+      (send (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2) l-3))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 402)+  (parent 191)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)+    (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (absent (eA (mul (rec eB) (rec l-1) w l-2)))+  (operation nonce-test+    (added-absence eA (mul (rec eB) (rec l-1) w l-2))+    (mul (rec eB) (rec l-1) w l-2) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 403)+  (parent 191)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)+    (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w eB)))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-2)) (gen))+    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (absent (eB (mul eA (rec l-1) w l-2)))+  (operation nonce-test (added-absence eB (mul eA (rec l-1) w l-2))+    (mul eA (rec l-1) w l-2) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w eB)))+      (send (cat (exp (gen) l-2) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 404)+  (parent 191)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) l-1) (mul w l-2)))+  (defstrand ltx-gen 1 (self self-0) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (absent (l-2 (mul eA (rec eB) w l-1)))+  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w l-1))+    (mul eA (rec eB) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w l-1))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w l-2)))+      (send (cat (exp (gen) l-1) (mul w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))))+  (label 405)+  (parent 191)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)+    (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (absent (l-2 (mul eA (rec eB) (rec l-1) w)))+  (operation nonce-test+    (added-absence l-2 (mul eA (rec eB) (rec l-1) w))+    (mul eA (rec eB) (rec l-1) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))+  (label 406)+  (parent 191)+  (unrealized (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eB rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w)))+      (send (cat (gen) (mul (rec eB) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))+  (label 407)+  (parent 193)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w)))+  (deflistener (cat (gen) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))+    ((recv eB) (send eB)))+  (label 408)+  (parent 194)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul w e e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eB)+  (absent (eB (mul w e e)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))+  (label 409)+  (parent 196)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (absent (e (mul (rec eB) w)))+  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w)))+      (send (cat (gen) (mul (rec eB) w))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))+    ((recv e) (send e)))+  (label 410)+  (parent 197)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) w))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA w))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 411)+  (parent 199)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB rndx)+    (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB eA)+  (absent (eA (mul (rec eB) w e)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w e)))+      (send (cat (gen) (mul (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eA) (send eA)))+  (label 412)+  (parent 202)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)+    (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (absent (eB (mul eA w e)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w e))) (send (cat (gen) (mul eA w e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eB) (send eB)))+  (label 413)+  (parent 203)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w l-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w l-0)))+      (send (cat (gen) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 414)+  (parent 205)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w l-0)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w l-0)))+      (send (cat (gen) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 415)+  (parent 206)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w l-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w l-0)))+      (send (cat (gen) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 416)+  (parent 209)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (gen) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w l-0)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (gen) (mul eA w l-0)))+      (send (cat (gen) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 417)+  (parent 210)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w l-1)))+      (send (cat (gen) (mul (rec eB) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eA) (send eA)))+  (label 418)+  (parent 214)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (absent (eB (mul eA w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w l-1)))+      (send (cat (gen) (mul eA w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eB) (send eB)))+  (label 419)+  (parent 215)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (absent (l-1 (mul eA (rec eB) w)))+  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w)))+      (send (cat (gen) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-1) (send l-1)))+  (label 420)+  (parent 216)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 e rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec e) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul (rec e) (rec e) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))+  (label 421)+  (parent 219)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (deflistener (cat (gen) (mul w e e)))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e)+  (absent (e (mul eA w)))+  (operation nonce-test (added-listener e) (mul w e e) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e))))+    ((recv e) (send e)))+  (label 422)+  (parent 220)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e e-0 e-0))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e e-0))) (l l) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e-0) (mul w e e)))+  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))+  (deflistener e-0)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e e-0 e-0)))+        kh)))+  (neq ((exp (gen) (mul w e e e-0)) (gen))+    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (e e-0) (l-0 l) (e l-0)+    (e-0 l) (e l) (e-0 l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e e-0)+  (absent (e-0 (mul w e e)))+  (operation nonce-test (added-listener e-0) (mul w e-0 e-0) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e e-0 e-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e e e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e-0) (mul w e e)))+      (send (cat (exp (gen) e-0) (mul w e e))))+    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))+      (send (cat (exp (gen) e) (mul w e-0 e-0))))+    ((recv e-0) (send e-0)))+  (label 423)+  (parent 223)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e-0)))) (l l-0) (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+  (deflistener e-0)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec e) w)) (gen))+    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 e) (l-0 l)+    (e-0 l-0) (e l) (e-0 l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 e-0)+  (absent (e-0 (mul (rec e) (rec e) w)))+  (operation nonce-test (added-listener e-0) (mul w (rec e-0) (rec e-0))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))+    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0)))))+    ((recv e-0) (send e-0)))+  (label 424)+  (parent 224)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul w (rec e))))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul w (rec e))))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul w (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e)))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 425)+  (parent 227)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (deflistener (cat (exp (gen) e) (mul w e)))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (absent (e (mul eA w)))+  (operation nonce-test (added-listener e) (mul w e) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (cat (exp (gen) e) (mul w e)))+      (send (cat (exp (gen) e) (mul w e)))) ((recv e) (send e)))+  (label 426)+  (parent 228)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 e rndx)+    (w expt) (e-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w e-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))+  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e-0))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w e-0)) (gen))+    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul (rec e) (rec e) w e-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w e-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w e-0))))+    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))+      (send (cat (exp (gen) e-0) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))+    ((recv eA) (send eA)))+  (label 427)+  (parent 231)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)+    (w expt) (e e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e-0 e-0))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e e-0))) (l l-0) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e-0) (mul eA w e)))+  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener e-0)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e-0 e-0)))+        kh)))+  (neq ((exp (gen) (mul eA w e e-0)) (gen))+    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (eA e-0) (l l-0) (eA l)+    (e-0 l-0) (eA l-0) (e-0 l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e-0)+  (absent (e-0 (mul eA w e)))+  (operation nonce-test (added-listener e-0) (mul w e-0 e-0) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e-0 e-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w e e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e-0) (mul eA w e)))+      (send (cat (exp (gen) e-0) (mul eA w e))))+    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))+      (send (cat (exp (gen) e) (mul w e-0 e-0))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv e-0) (send e-0)))+  (label 428)+  (parent 232)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w l-0))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 eA)+  (absent (eA (mul (rec e) (rec e) w l-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 429)+  (parent 235)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0 e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w e e)))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 e)) (gen))+    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (absent (e (mul eA w l-0)))+  (operation nonce-test (added-listener e) (mul w e e) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-0 e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w l-0)))+      (send (cat (exp (gen) e) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w e e)))+      (send (cat (exp (gen) l-0) (mul w e e)))) ((recv e) (send e)))+  (label 430)+  (parent 236)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w l-0))) (l l)+    (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l-0 l)+    (eA l-0) (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l e l-0 eA)+  (absent (eA (mul (rec e) (rec e) w l-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 431)+  (parent 240)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 e e))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 e))) (l l) (e e))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w e e)))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 e)) (gen))+    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l-0 l) (eA l-0)+    (e l) (eA l) (e l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e)+  (absent (e (mul eA w l-0)))+  (operation nonce-test (added-listener e) (mul w e e) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) (mul eA w l-0 e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w l-0)))+      (send (cat (exp (gen) e) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w e e)))+      (send (cat (exp (gen) l-0) (mul w e e)))) ((recv e) (send e)))+  (label 432)+  (parent 241)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec e) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (absent (eA (mul (rec e) (rec e) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eA) (send eA)))+  (label 433)+  (parent 246)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1 e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w e e)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 e e)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1 e)) (gen))+    ((exp (gen) (mul w l-1 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 e)+  (absent (e (mul eA w l-1)))+  (operation nonce-test (added-listener e) (mul w e e) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-1 e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w l-1)))+      (send (cat (exp (gen) e) (mul eA w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w e e)))+      (send (cat (exp (gen) l-1) (mul w e e))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv e) (send e)))+  (label 434)+  (parent 247)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (absent (l-1 (mul eA (rec e) (rec e) w)))+  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-1) (send l-1)))+  (label 435)+  (parent 248)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB e rndx)+    (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB eA)+  (absent (eA (mul (rec eB) (rec e) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))+  (label 436)+  (parent 251)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA e rndx)+    (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (absent (eB (mul eA (rec e) w)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))+    ((recv eB) (send eB)))+  (label 437)+  (parent 252)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)+    (l-1 e-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 eB))) (l l-1)+    (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 e-0))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0 e-0 eB)))+        kh)))+  (neq ((exp (gen) (mul w e-0 e-0)) (gen))+    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (e-0 eB) (l-1 l-0)+    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e-0 eB)+  (absent (eB (mul (rec e) w e-0 e-0)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e-0 e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))+      (send (cat (exp (gen) e) (mul (rec e) w e-0 e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w eB)))+      (send (cat (exp (gen) e-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 438)+  (parent 255)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec e-0)))) (l l-1)+    (e e-0))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+  (deflistener e-0)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l-1 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 eB) (l-1 l-0)+    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 e-0)+  (absent (e-0 (mul (rec eB) (rec e) w)))+  (operation nonce-test (added-listener e-0) (mul w (rec e-0) (rec e-0))+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))+      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0)))))+    ((recv e-0) (send e-0)))+  (label 439)+  (parent 256)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base)+    (l l-0 l-1 e eA e-0 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul e (rec eA) e-0))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e-0) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l)+    (e e-0))+  (deflistener (cat (exp (gen) e) (mul (rec eA) e-0)))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e e-0))) kh)))+  (neq ((exp (gen) e-0) (gen)) ((exp (gen) (mul e (rec eA) e-0)) (gen))+    (D B) (eA e) (l-0 l-1) (eA l-0) (e l-1) (eA l-1) (e l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e eA)+  (operation nonce-test (added-listener eA) (mul (rec eA) e-0) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) e-0)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e)) (recv (exp (gen) e-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e-0) (one)))+      (send (cat (exp (gen) e-0) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))+    ((recv (cat (exp (gen) e) (mul (rec eA) e-0)))+      (send (cat (exp (gen) e) (mul (rec eA) e-0))))+    ((recv eA) (send eA)))+  (label 440)+  (parent 257)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)+    (l-1 e-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l-1) (e e-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e-0 (rec eA))) (gen))+    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 e-0 eA)+  (absent (eA (mul (rec e) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) e-0)) (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))+      (send (cat (exp (gen) e-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 441)+  (parent 259)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB rndx)+    (w expt) (l-1 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec eB) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) w)))+      (send (cat (exp (gen) e) (mul (rec eB) w))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 442)+  (parent 263)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA rndx)+    (w expt) (l-1 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))+  (label 443)+  (parent 264)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eB e rndx) (w expt) (e-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e-0))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0))+    ((8 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e-0)) (gen))+    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB eA)+  (absent (eA (mul (rec eB) (rec e) w e-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))+      (send (cat (exp (gen) e-0) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))) ((recv eA) (send eA)))+  (label 444)+  (parent 267)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)+    (l l-0 l-1 l-2 eA e rndx) (w expt) (e-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w e-0))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w e-0)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) (mul w eB)))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)+    (e e-0))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0))+    ((8 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w e-0)) (gen))+    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB)+  (absent (eB (mul eA (rec e) w e-0)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w e-0)))+      (send (cat (exp (gen) e) (mul eA (rec e) w e-0))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) (mul w eB)))+      (send (cat (exp (gen) e-0) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))) ((recv eB) (send eB)))+  (label 445)+  (parent 268)+  (unrealized (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) (rec e) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 446)+  (parent 271)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)+    (w expt) (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA l-1 eB)+  (absent (eB (mul eA (rec e) w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))+  (label 447)+  (parent 272)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)+    (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-0)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l-0)+    (eA l-1) (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) (rec e) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 448)+  (parent 276)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)+    (w expt) (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 D) (l-0 B))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l-0) (eA l-1)+    (eB l-0) (eA l-0) (eB l-1))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 eA l-1 eB)+  (absent (eB (mul eA (rec e) w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))+      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))+  (label 449)+  (parent 277)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-2))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB l-2 eA)+  (absent (eA (mul (rec eB) (rec e) w l-2)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((recv eA) (send eA)))+  (label 450)+  (parent 282)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w eB)))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-2)) (gen))+    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)+    (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA l-2 eB)+  (absent (eB (mul eA (rec e) w l-2)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-2)))+      (send (cat (exp (gen) e) (mul eA (rec e) w l-2))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w eB)))+      (send (cat (exp (gen) l-2) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((recv eB) (send eB)))+  (label 451)+  (parent 283)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (deflistener l-2)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))+    ((7 0) (8 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (absent (l-2 (mul eA (rec eB) (rec e) w)))+  (operation nonce-test (added-listener l-2) (mul w (rec l-2)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((recv l-2) (send l-2)))+  (label 452)+  (parent 284)+  (unrealized (1 3) (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) (rec l-0) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))+  (label 453)+  (parent 287)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (gen) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA (rec l-0) w)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))+    ((recv eB) (send eB)))+  (label 454)+  (parent 288)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec l) w e e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eB)+  (absent (eB (mul (rec l) w e e)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec l) w e e)))+      (send (cat (exp (gen) l) (mul (rec l) w e e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))+  (label 455)+  (parent 292)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w)))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 e)+  (absent (e (mul (rec eB) (rec l) w)))+  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))+    ((recv e) (send e)))+  (label 456)+  (parent 294)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul w (rec l-0))))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul w (rec l-0)))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 457)+  (parent 297)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)+    (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-1 eA)+  (absent (eA (mul (rec eB) (rec l-1) w e)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eA) (send eA)))+  (label 458)+  (parent 301)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)+    (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-1 eB)+  (absent (eB (mul eA (rec l-1) w e)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eB) (send eB)))+  (label 459)+  (parent 302)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 460)+  (parent 306)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA w)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w)))+      (send (cat (exp (gen) l-0) (mul eA w))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 461)+  (parent 307)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 eA)+  (absent (eA (mul (rec eB) (rec l) w l-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 462)+  (parent 310)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA l l-0 eB)+  (absent (eB (mul eA (rec l) w l-0)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 463)+  (parent 311)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eA) (send eA)))+  (label 464)+  (parent 317)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eB) (send eB)))+  (label 465)+  (parent 318)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-1) (send l-1)))+  (label 466)+  (parent 320)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (gen) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) (rec l-0) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))+  (label 467)+  (parent 323)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (gen) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA (rec l-0) w)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))+    ((recv eB) (send eB)))+  (label 468)+  (parent 324)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) e e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eB)+  (absent (eB (mul w (rec l-0) e e)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) e e)))+      (send (cat (exp (gen) l-0) (mul w (rec l-0) e e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))+  (label 469)+  (parent 328)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e)+  (absent (e (mul (rec eB) w (rec l-0))))+  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))+      (send (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0)))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))+    ((recv e) (send e)))+  (label 470)+  (parent 330)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul (rec l) w)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e eA)+  (absent (eA (mul (rec l) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec l) w)))+      (send (cat (exp (gen) l) (mul (rec l) w))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 471)+  (parent 333)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)+    (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e (rec eA)))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-1 eA)+  (absent (eA (mul (rec eB) (rec l-1) w e)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eA) (send eA)))+  (label 472)+  (parent 337)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)+    (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)+    (e e))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))+  (fn-of ("principal-of" (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-1 eB)+  (absent (eB (mul eA (rec l-1) w e)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eB) (send eB)))+  (label 473)+  (parent 338)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eB l l-0 eA)+  (absent (eA (mul (rec eB) (rec l) w l-0)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 474)+  (parent 342)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen eA l l-0 eB)+  (absent (eB (mul eA (rec l) w l-0)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))+      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 475)+  (parent 343)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))+      (send (cat (exp (gen) l-0) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 476)+  (parent 348)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA w)))+  (deflistener (cat (exp (gen) l-0) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0)) (gen))+    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA w)))+      (send (cat (exp (gen) l-0) (mul eA w))))+    ((recv (cat (exp (gen) l-0) (mul w eB)))+      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))+  (label 477)+  (parent 349)+  (unrealized (1 3) (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eA) (send eA)))+  (label 478)+  (parent 353)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv eB) (send eB)))+  (label 479)+  (parent 354)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))+    ((7 1) (5 0)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-1) (send l-1)))+  (label 480)+  (parent 356)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB l-1 rndx) (w expt)+    (eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) (rec l-1) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul w (rec eA))))+      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))+  (label 481)+  (parent 360)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA l-1 rndx) (w expt)+    (eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (absent (eB (mul eA (rec l-1) w)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))+    ((recv eB) (send eB)))+  (label 482)+  (parent 361)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB))))+  (deflistener (cat (gen) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))+  (absent (l-1 (mul eA (rec eB))))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB))))+      (send (cat (exp (gen) l-1) (mul eA (rec eB)))))+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 483)+  (parent 362)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (gen) (mul w l-1)))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (absent (l-1 (mul eA (rec eB) w)))+  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (gen) (mul w l-1))) (send (cat (gen) (mul w l-1))))+    ((recv l-1) (send l-1)))+  (label 484)+  (parent 362)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e eB))) (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e e))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w e e)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e e eB))) kh)))+  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 e eB)+  (absent (eB (mul (rec l-0) w e e)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w e e)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) w e e))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))+  (label 485)+  (parent 366)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) e e)))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))+  (absent (l-1 (mul (rec eB) e e)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) e e l-1)) (gen))+    ((exp (gen) (mul e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)+    (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) e e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) e e))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 486)+  (parent 367)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w e e)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l B) (l-0 D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 e l-1)+  (absent (l-1 (mul (rec eB) w e e)))+  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w e e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w e e))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1)))+  (label 487)+  (parent 367)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec e)))) (l l-1) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-1 l) (e l-1)+    (eB l) (e l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 e)+  (absent (e (mul (rec eB) (rec l-0) w)))+  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))+    ((recv e) (send e)))+  (label 488)+  (parent 368)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-1) (e e))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))+    (D B) (eA e) (l l-1) (eA l) (e l-1) (eA l-1) (e l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 e eA)+  (absent (eA (mul (rec l-0) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) w)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 489)+  (parent 372)+  (unrealized (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) eA))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))+  (absent (l-1 eA))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e l-1))) kh)))+  (neq ((exp (gen) (mul eA l-1)) (gen)) ((exp (gen) (mul e l-1)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) eA)) (send (cat (exp (gen) l-1) eA)))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 490)+  (parent 373)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 e l-1)+  (absent (l-1 (mul eA w)))+  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1)))+  (label 491)+  (parent 373)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eB l-2 rndx) (w expt) (e eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul w (rec eA))))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e)) (gen))+    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-2 eA)+  (absent (eA (mul (rec eB) (rec l-2) w e)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))+      (send (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w (rec eA))))+      (send (cat (exp (gen) e) (mul w (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eA) (send eA)))+  (label 492)+  (parent 377)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA l-2 rndx) (w expt) (e eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul w eB)))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 2) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-2 eB)+  (absent (eB (mul eA (rec l-2) w e)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))+      (send (cat (exp (gen) l-2) (mul eA (rec l-2) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w eB)))+      (send (cat (exp (gen) e) (mul w eB))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv eB) (send eB)))+  (label 493)+  (parent 378)+  (unrealized (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) e)))+  (deflistener (cat (exp (gen) e) l-2))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (4 0))+    ((7 1) (5 0)))+  (absent (l-2 (mul eA (rec eB) e)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) e l-2)) (gen))+    ((exp (gen) (mul e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) e)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) e))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 494)+  (parent 379)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 peer name) (hl base)+    (l l-0 l-1 eA eB rndx) (w expt) (e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w e)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) e) (mul w l-2)))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (8 0)) ((6 1) (0 3))+    ((7 2) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e l-2)) (gen))+    ((exp (gen) (mul w e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (absent (l-2 (mul eA (rec eB) w e)))+  (operation nonce-test (added-listener l-2) (mul w l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w e)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w e))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) e) (mul w l-2)))+      (send (cat (exp (gen) e) (mul w l-2))))+    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2)))+  (label 495)+  (parent 379)+  (unrealized (1 3) (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-1)+    (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 496)+  (parent 383)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))+  (label 497)+  (parent 384)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))+  (deflistener (cat (exp (gen) l-0) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))+  (absent (l-1 (mul eA (rec eB) l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0 l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0 l-1)) (gen))+    ((exp (gen) (mul l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) l-0))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 498)+  (parent 385)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1)))+  (label 499)+  (parent 385)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (absent (eA (mul (rec eB) (rec l-0) w l-1)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 500)+  (parent 390)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (6 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (absent (eB (mul eA (rec l-0) w l-1)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))+  (label 501)+  (parent 391)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0 l-1)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))+  (deflistener (cat (exp (gen) l-0) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))+  (absent (l-1 (mul eA (rec eB) l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0 l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-0 l-1)) (gen))+    ((exp (gen) (mul l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) l-0))))+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 502)+  (parent 392)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (deflistener l-1)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-0 D) (l B) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1)))+  (label 503)+  (parent 392)+  (unrealized (1 3) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (absent (eA (mul (rec eB) w)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec eA)))))+    ((recv eA) (send eA)))+  (label 504)+  (parent 397)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul w eB)))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (absent (eB (mul eA w)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w eB)))+      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))+  (label 505)+  (parent 398)+  (unrealized (1 3) (4 0) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)+    (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (absent (eA (mul (rec eB) (rec l-1) w l-2)))+  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec eA)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((recv eA) (send eA)))+  (label 506)+  (parent 403)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)+    (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w eB)))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-2)) (gen))+    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (absent (eB (mul eA (rec l-1) w l-2)))+  (operation nonce-test (added-listener eB) (mul w eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w eB)))+      (send (cat (exp (gen) l-2) (mul w eB))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((recv eB) (send eB)))+  (label 507)+  (parent 404)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) l-1)))+  (deflistener (cat (exp (gen) l-1) l-2))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 0) (4 0)) ((7 1) (5 0)))+  (absent (l-2 (mul eA (rec eB) l-1)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1 l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) l-1 l-2)) (gen))+    ((exp (gen) (mul l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1 l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) l-1)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) l-1))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 508)+  (parent 405)+  (unrealized (1 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) l-1) (mul w l-2)))+  (defstrand ltx-gen 1 (self self-0) (l l-1))+  (deflistener l-2)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (8 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (6 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (absent (l-2 (mul eA (rec eB) w l-1)))+  (operation nonce-test (added-listener l-2) (mul w l-2) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w l-1))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w l-2)))+      (send (cat (exp (gen) l-1) (mul w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0))))+    ((recv l-2) (send l-2)))+  (label 509)+  (parent 405)+  (unrealized (1 3) (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)+    (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))+  (defstrand ltx-gen 1 (self self-0) (l l-2))+  (deflistener l-2)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 0) (4 0)) ((7 0) (8 0)) ((8 1) (6 0)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (absent (l-2 (mul eA (rec eB) (rec l-1) w)))+  (operation nonce-test (added-listener l-2) (mul w (rec l-2)) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))+    ((recv l-2) (send l-2)))+  (label 510)+  (parent 406)+  (unrealized (1 3) (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA (rec eB) w)))+      (send (cat (gen) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 511)+  (parent 420)+  (unrealized (1 3) (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec e) (rec e) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA e l-1)+  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 512)+  (parent 435)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (mul eA (rec eB) (rec e) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA eB l-2)+  (operation nonce-test (displaced 7 9 ltx-gen 2) l-2 (8 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 513)+  (parent 452)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 514)+  (parent 466)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) w)) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 515)+  (parent 480)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)+    (l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (deflistener (cat (gen) (mul w l-1)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((recv (cat (gen) (mul w l-1))) (send (cat (gen) (mul w l-1))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 516)+  (parent 484)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-1))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w e e)))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul (rec eB) w e e)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e e l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 e l-1)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w e e)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w e e))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 517)+  (parent 487)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e l-1)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 518)+  (parent 491)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA eB rndx) (w expt) (e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w l-2)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (mul eA (rec eB) w e)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w e l-2)) (gen))+    ((exp (gen) (mul w e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-2)+  (operation nonce-test (displaced 5 9 ltx-gen 2) l-2 (8 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w e)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w l-2)))+      (send (cat (exp (gen) e) (mul w l-2))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 519)+  (parent 495)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 520)+  (parent 499)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))+    (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1)))+      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 521)+  (parent 503)+  (unrealized (1 3) (4 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w l-2)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (mul eA (rec eB) w l-1)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2)))+        kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (displaced 5 9 ltx-gen 2) l-2 (8 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB))+      (recv (exp (gen) (mul eA (rec eB) w l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w l-2)))+      (send (cat (exp (gen) l-1) (mul w l-2))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 522)+  (parent 509)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)+    (l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (mul eA (rec eB) (rec l-1) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (displaced 7 9 ltx-gen 2) l-2 (8 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 523)+  (parent 510)+  (unrealized (1 3) (4 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-2)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) l-2))+  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))+  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) l-2)) (send (cat (gen) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))+      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 524)+  (parent 511)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w)))+      (send (cat (gen) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 525)+  (parent 511)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 526)+  (parent 511)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 l-1 eA e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) e)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (one)))+  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA e)+  (operation nonce-test+    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e)))+      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 527)+  (parent 512)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul e l-2))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) l-2))+  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-2))) kh)))+  (neq ((exp (gen) (mul e l-2)) (gen))+    ((exp (gen) (mul (rec eA) e e l-2)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA e l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul e l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e l-2)))+      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 528)+  (parent 512)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec e) (rec e) w)) (l-1 (mul (rec e) (rec e) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec e) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w))+    (mul (rec e) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 529)+  (parent 512)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) e e)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (e (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 e)+  (operation nonce-test (added-absence e (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) e e)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) e e))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 530)+  (parent 512)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 l-2 eA eB e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e)))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (one)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))+  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 l-2 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (e-0 e) (w (mul (rec eA) eB e)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e)))+      (send (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 531)+  (parent 513)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 self-1 name) (hl base)+    (l l-0 l-1 l-2 eA eB e l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-3)))+    (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-3))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) l-3))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e l-3)))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (6 0)) ((9 1) (4 0)))+  (absent (l-2 l-3))+  (fn-of ("principal-of" (l-3 self-1) (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-3))) kh)))+  (neq ((exp (gen) (mul e l-3)) (gen))+    ((exp (gen) (mul (rec eA) eB e l-3)) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 l-2 eA eB l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) l-3)) (send (cat (exp (gen) e) l-3)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e l-3)))+      (send (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e l-3))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 532)+  (parent 513)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eA (mul (rec eB) (rec e) w)) (l-2 (mul (rec eB) (rec e) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB l-2 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w))+    (mul (rec eB) (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 533)+  (parent 513)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eB (mul eA (rec e) w)) (l-2 (mul eA (rec e) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA l-2 eB)+  (operation nonce-test (added-absence eB (mul eA (rec e) w))+    (mul eA (rec e) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 534)+  (parent 513)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-0 (one)))+  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1) (w (mul (rec eA) eB l-1)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 535)+  (parent 514)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener+    (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-0 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-1)+    (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 536)+  (parent 514)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec eB) (rec l-0) w))+    (l-1 (mul (rec eB) (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))+    (mul (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 537)+  (parent 514)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))+    (mul eA (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 538)+  (parent 514)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul w (rec l-0) l-1))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 539)+  (parent 514)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-0 (one)))+  (fn-of ("principal-of" (l-0 self) (l B) (l-1 D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1) (w (mul (rec eA) eB l-1)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 540)+  (parent 515)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eA) eB l-1 l-2))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener+    (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-0 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))+      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 541)+  (parent 515)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec eB) (rec l-0) w))+    (l-1 (mul (rec eB) (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))+    (mul (rec eB) (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 542)+  (parent 515)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))+    (mul eA (rec l-0) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 543)+  (parent 515)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-0 self) (l B) (l-1 D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))+      (send (cat (exp (gen) l-0) (mul w (rec l-0) l-1))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 544)+  (parent 515)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 l-1 eA eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (gen) (mul l-1 (rec eA) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (gen) (mul l-1 (rec eA) eB)))+      (send (cat (gen) (mul l-1 (rec eA) eB)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 545)+  (parent 516)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener (cat (gen) (mul l-1 (rec eA) eB l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul l-1 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (gen) (mul l-1 (rec eA) eB l-2)))+      (send (cat (gen) (mul l-1 (rec eA) eB l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 546)+  (parent 516)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (deflistener (cat (gen) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((recv (cat (gen) (mul w l-1 (rec eA))))+      (send (cat (gen) (mul w l-1 (rec eA))))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 547)+  (parent 516)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (deflistener (cat (gen) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((recv (cat (gen) (mul w l-1 eB)))+      (send (cat (gen) (mul w l-1 eB)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 548)+  (parent 516)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 l-1 eB e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 eB (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 eB (rec e))) (gen))+    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eB e)+  (operation nonce-test+    (contracted (eB-0 eB) (w (mul eB (rec e) (rec e))) (e-0 e)) (one)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul l-1 eB (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 549)+  (parent 517)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eB e l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 eB (rec e) l-2))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e) l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul l-1 eB (rec e) l-2)) (gen)) (D B) (e eB) (l-0 l)+    (e l-0) (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eB e l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul l-1 eB (rec e) l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e) l-2)))+      (send (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e) l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 550)+  (parent 517)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-1 eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w e e)))+  (deflistener (cat (exp (gen) e) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul w e e)) (l-1 (mul w e e)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul w e e l-1)) (gen))+    ((exp (gen) (mul w e l-1 eB)) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eB)+  (operation nonce-test (added-absence eB (mul w e e)) (mul w e e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul w e e)))+      (send (cat (exp (gen) l-1) (mul w e e))))+    ((recv (cat (exp (gen) e) (mul w l-1 eB)))+      (send (cat (exp (gen) e) (mul w l-1 eB)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 551)+  (parent 517)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (e (mul (rec eB) w)) (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 e)+  (operation nonce-test (added-absence e (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w l-1 (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((recv (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w l-1 (rec e) (rec e)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 552)+  (parent 517)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) e) (mul l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e l-1 (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (operation nonce-test (contracted (eA-0 eA) (w (rec eA))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) e) (mul l-1 (rec eA))))+      (send (cat (exp (gen) e) (mul l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 553)+  (parent 518)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 e l-1 eA l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1 (rec eA) l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener (cat (exp (gen) e) (mul l-1 (rec eA) l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1 l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul e l-1 (rec eA) l-2)) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1 (rec eA) l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) e) (mul l-1 (rec eA) l-2)))+      (send (cat (exp (gen) e) (mul l-1 (rec eA) l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 554)+  (parent 518)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) w))+  (deflistener (cat (exp (gen) e) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA w) (l-1 w))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-1))) kh)))+  (neq ((exp (gen) (mul w l-1)) (gen))+    ((exp (gen) (mul w e l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (operation nonce-test (added-absence eA w) w (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((recv (cat (exp (gen) e) (mul w l-1 (rec eA))))+      (send (cat (exp (gen) e) (mul w l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 555)+  (parent 518)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (deflistener (cat (exp (gen) e) (mul w l-1)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (5 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (4 0)))+  (absent (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 e l-1)+  (operation nonce-test (added-listener eA) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((recv (cat (exp (gen) e) (mul w l-1)))+      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 556)+  (parent 518)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 l-2 eA eB e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-2 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-2)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (one)))+  (deflistener (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (one)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-2 eB))) kh)))+  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul l-2 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-2 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec e)))+      (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-2 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (one)))+      (send (cat (exp (gen) l-2) (one))))+    ((recv (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e))))+      (send (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 557)+  (parent 519)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 self-1 name) (hl base)+    (l l-0 l-1 l-2 eA eB e l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-2 (rec eA) eB l-3)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-2 l-3))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) l-3))+  (deflistener (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e) l-3)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (5 0)) ((9 1) (4 0)))+  (absent (l-2 l-3))+  (fn-of ("principal-of" (l-3 self-1) (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-2 eB l-3))) kh)))+  (neq ((exp (gen) (mul l-2 l-3)) (gen))+    ((exp (gen) (mul l-2 (rec eA) eB l-3)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-2 eA eB l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-2 (rec eA) eB l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) l-3)) (send (cat (exp (gen) l-2) l-3)))+    ((recv (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e) l-3)))+      (send (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e) l-3))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 558)+  (parent 519)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB rndx) (w expt) (e l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w l-2 (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eA (mul (rec eB) w e)) (l-2 (mul (rec eB) w e)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e l-2)) (gen))+    ((exp (gen) (mul w e l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-2 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w e))+    (mul (rec eB) w e) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul (rec eB) w e)))+      (send (cat (exp (gen) l-2) (mul (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w l-2 (rec eA))))+      (send (cat (exp (gen) e) (mul w l-2 (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 559)+  (parent 519)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA rndx) (w expt) (e l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA w e)))+  (deflistener (cat (exp (gen) e) (mul w l-2 eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eB (mul eA w e)) (l-2 (mul eA w e)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w e l-2)) (gen))+    ((exp (gen) (mul w e l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-2 eB)+  (operation nonce-test (added-absence eB (mul eA w e)) (mul eA w e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA w e)))+      (send (cat (exp (gen) l-2) (mul eA w e))))+    ((recv (cat (exp (gen) e) (mul w l-2 eB)))+      (send (cat (exp (gen) e) (mul w l-2 eB))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 560)+  (parent 519)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-0)) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-0 (one)))+  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec l-1)))+      (l-2 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))+      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1)))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 561)+  (parent 520)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 (rec eA) eB l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 l-2))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-0 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB l-2))) kh)))+  (neq ((exp (gen) (mul l-0 l-2)) (gen))+    ((exp (gen) (mul l-0 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-1)+    (eA l) (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))+    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 562)+  (parent 520)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt)+    (l-0 l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))+    (mul (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 563)+  (parent 520)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt)+    (l-0 l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))+      (send (cat (exp (gen) l-1) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))+      (send (cat (exp (gen) l-0) (mul w l-1 eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 564)+  (parent 520)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-0))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-1) (eA l)+    (eB l-1) (eA l-1) (eB l))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w l-0 (rec l-1)))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 565)+  (parent 520)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 (rec eA) eB))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) l-0)) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (one)))+  (deflistener (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-0 (one)))+  (fn-of ("principal-of" (l-0 self) (l-1 D) (l B))+    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB))) kh)))+  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))+    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec l-1)))+      (l-2 l-1)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))+      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1)))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 566)+  (parent 521)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul l-0 (rec eA) eB l-2))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 l-2))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-0 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l-1 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB l-2))) kh)))+  (neq ((exp (gen) (mul l-0 l-2)) (gen))+    ((exp (gen) (mul l-0 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l-1 l)+    (eA l-1) (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))+    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 567)+  (parent 521)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt)+    (l-0 l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))+    (mul (rec eB) w l-0) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 568)+  (parent 521)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt)+    (l-0 l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))+      (send (cat (exp (gen) l-1) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))+      (send (cat (exp (gen) l-0) (mul w l-1 eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 569)+  (parent 521)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0))) (l l-1) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))+  (deflistener l-0)+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)))+  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-0 self) (l-1 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))+    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)+    (eB l) (eA l) (eB l-1))+  (non-orig (privk B) (privk D) l l-1)+  (precur (5 0) (4 0))+  (uniq-gen l eA eB l-0 l-1)+  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))+      (send (cat (exp (gen) l-1) (mul w l-0 (rec l-1)))))+    ((recv l-0) (send l-0))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 570)+  (parent 521)+  (unrealized (1 3) (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2))))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self-0) (l-2 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec l-2)))+      (l-3 l-2)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2))))+      (send (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1)))+  (label 571)+  (parent 522)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-2))+  (deflistener (cat (exp (gen) l-2) (mul l-1 (rec eA) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))+  (neq ((exp (gen) (mul l-1 l-2)) (gen))+    ((exp (gen) (mul l-1 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test (displaced 6 9 ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))+    ((recv (cat (exp (gen) l-2) (mul l-1 (rec eA) eB)))+      (send (cat (exp (gen) l-2) (mul l-1 (rec eA) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 572)+  (parent 522)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 self-1 name)+    (l l-0 l-1 eA eB l-2 l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-3)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-3))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-3))+  (deflistener+    (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2) l-3)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (5 0))+    ((9 1) (4 0)))+  (absent (l-1 l-3))+  (fn-of+    ("principal-of" (l-3 self-1) (l-1 self-0) (l-2 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-3))) kh)))+  (neq ((exp (gen) (mul l-1 l-3)) (gen))+    ((exp (gen) (mul l-1 (rec eA) eB l-3)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2 l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-3)) (send (cat (exp (gen) l-1) l-3)))+    ((recv (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2) l-3)))+      (send (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2) l-3))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 573)+  (parent 522)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)+    (l-1 l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w l-2 (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eA (mul (rec eB) w l-1)) (l-2 (mul (rec eB) w l-1)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1 l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w l-1))+    (mul (rec eB) w l-1) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1 l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul (rec eB) w l-1)))+      (send (cat (exp (gen) l-2) (mul (rec eB) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w l-2 (rec eA))))+      (send (cat (exp (gen) l-1) (mul w l-2 (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 574)+  (parent 522)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)+    (l-1 l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w l-2 eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eB (mul eA w l-1)) (l-2 (mul eA w l-1)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (operation nonce-test (added-absence eB (mul eA w l-1)) (mul eA w l-1)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1 l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA w l-1)))+      (send (cat (exp (gen) l-2) (mul eA w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w l-2 eB)))+      (send (cat (exp (gen) l-1) (mul w l-2 eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 575)+  (parent 522)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-1 self-0) (l-2 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1)))+  (label 576)+  (parent 522)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-2)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (one)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))+  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (l-3 l-2) (w (mul (rec eA) eB l-2)))+    (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (one)))+      (send (cat (exp (gen) l-2) (one))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))+      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1)))+  (label 577)+  (parent 523)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-2)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-2 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))+  (absent (l-1 l-2))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-2))) kh)))+  (neq ((exp (gen) (mul l-2 l-2)) (gen))+    ((exp (gen) (mul (rec eA) eB l-2 l-2)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2)+  (operation nonce-test (displaced 5 9 ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-2)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-2))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) l-2)) (send (cat (exp (gen) l-2) l-2)))+    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-2)))+      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 578)+  (parent 523)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 self-1 name)+    (l l-0 l-1 eA eB l-2 l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-3)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-2 l-3))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) l-3))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener+    (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-3)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (6 0))+    ((9 1) (4 0)))+  (absent (l-1 l-3))+  (fn-of+    ("principal-of" (l-3 self-1) (l-1 self-0) (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-3))) kh)))+  (neq ((exp (gen) (mul l-2 l-3)) (gen))+    ((exp (gen) (mul (rec eA) eB l-2 l-3)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 l-1 eA eB l-2 l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) l-3)) (send (cat (exp (gen) l-2) l-3)))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-3)))+      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-3))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 579)+  (parent 523)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)+    (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eA (mul (rec eB) (rec l-1) w))+    (l-2 (mul (rec eB) (rec l-1) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w))+    (mul (rec eB) (rec l-1) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 580)+  (parent 523)+  (unrealized (0 3) (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)+    (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (eB (mul eA (rec l-1) w)) (l-2 (mul eA (rec l-1) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (operation nonce-test (added-absence eB (mul eA (rec l-1) w))+    (mul eA (rec l-1) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 581)+  (parent 523)+  (unrealized (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))+  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w))+    (mul eA (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1)))+  (label 582)+  (parent 523)+  (unrealized (1 3) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul (rec eB) w)))+      (send (cat (gen) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 583)+  (parent 525)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (gen) (mul eA w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (operation nonce-test (added-listener eB) (mul w (rec l-1) eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 584)+  (parent 526)+  (unrealized (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec e) (rec e) w)) (l-1 (mul (rec e) (rec e) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec e) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)+    (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul (rec e) w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 585)+  (parent 529)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) e) (mul eA w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) e e)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (e (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))+  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 e)+  (operation nonce-test (added-listener e) (mul w (rec l-1) e e) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul eA w e))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA w)))+      (send (cat (exp (gen) e) (mul eA w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) e e)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) e e))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv e) (send e)))+  (label 586)+  (parent 530)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))+  (absent (eA (mul (rec eB) (rec e) w)) (l-2 (mul (rec eB) (rec e) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)+    (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eB l-2 eA)+  (operation nonce-test (added-listener eA) (mul w (rec l-2) (rec eA))+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))+      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eA) (send eA)))+  (label 587)+  (parent 533)+  (unrealized (1 3) (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (9 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))+    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))+  (absent (eB (mul eA (rec e) w)) (l-2 (mul eA (rec e) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))+  (non-orig (privk B) (privk D) l-0 l-1)+  (precur (6 0) (4 0))+  (uniq-gen l-0 l-1 eA l-2 eB)+  (operation nonce-test (added-listener eB) (mul w (rec l-2) eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))+      (send (cat (exp (gen) e) (mul eA (rec e) w))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eB) (send eB)))+  (label 588)+  (parent 534)+  (unrealized (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec eB) (rec l-0) w))+    (l-1 (mul (rec eB) (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 589)+  (parent 537)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-listener eB) (mul w (rec l-1) eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 590)+  (parent 538)+  (unrealized (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec eB) (rec l-0) w))+    (l-1 (mul (rec eB) (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)+    (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 591)+  (parent 542)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-listener eB) (mul w (rec l-1) eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))+      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 592)+  (parent 543)+  (unrealized (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)+    (l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (deflistener (cat (gen) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 eA)+  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((recv (cat (gen) (mul w l-1 (rec eA))))+      (send (cat (gen) (mul w l-1 (rec eA))))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 593)+  (parent 547)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)+    (l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (deflistener (cat (gen) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 eB)+  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((recv (cat (gen) (mul w l-1 eB)))+      (send (cat (gen) (mul w l-1 eB)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 594)+  (parent 548)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w e l-1 eB))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e l-1))) (l l) (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul w e e)))+  (deflistener (cat (exp (gen) e) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul w e e)) (l-1 (mul w e e)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul w e e l-1)) (gen))+    ((exp (gen) (mul w e l-1 eB)) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eB)+  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w e l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul w e e)))+      (send (cat (exp (gen) l-1) (mul w e e))))+    ((recv (cat (exp (gen) e) (mul w l-1 eB)))+      (send (cat (exp (gen) e) (mul w l-1 eB)))) ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 595)+  (parent 551)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 l-1 e rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1 (rec e)))) (l l-0) (e e))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener e)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (e (mul (rec eB) w)) (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)+    (eB l) (e l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 e)+  (operation nonce-test (added-listener e) (mul w l-1 (rec e) (rec e))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))+      (recv (exp (gen) (mul w l-1 (rec e)))) (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((recv (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))+      (send (cat (exp (gen) e) (mul w l-1 (rec e) (rec e)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv e) (send e)))+  (label 596)+  (parent 552)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l l-0 e l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) e) (mul l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (l-1 (one)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e l-1 (rec eA))) (gen))+    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (operation nonce-test (added-listener eA) (mul l-1 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) e) (mul l-1 (rec eA))))+      (send (cat (exp (gen) e) (mul l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 597)+  (parent 553)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-1))) (l l-0) (e e))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) w))+  (deflistener (cat (exp (gen) e) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA w) (l-1 w))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-1))) kh)))+  (neq ((exp (gen) (mul w l-1)) (gen))+    ((exp (gen) (mul w e l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0)+    (eA l) (e l-0) (eA l-0) (e l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 e l-1 eA)+  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))+      (recv (exp (gen) (mul w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))+    ((recv (cat (exp (gen) e) (mul w l-1 (rec eA))))+      (send (cat (exp (gen) e) (mul w l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 598)+  (parent 555)+  (unrealized (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eB rndx) (w expt) (e l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w e)))+  (deflistener (cat (exp (gen) e) (mul w l-2 (rec eA))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))+  (absent (eA (mul (rec eB) w e)) (l-2 (mul (rec eB) w e)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w e l-2)) (gen))+    ((exp (gen) (mul w e l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-2 eA)+  (operation nonce-test (added-listener eA) (mul w l-2 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul (rec eB) w e)))+      (send (cat (exp (gen) l-2) (mul (rec eB) w e))))+    ((recv (cat (exp (gen) e) (mul w l-2 (rec eA))))+      (send (cat (exp (gen) e) (mul w l-2 (rec eA)))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eA) (send eA)))+  (label 599)+  (parent 559)+  (unrealized (1 3) (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self peer self-0 name) (hl base)+    (l l-0 l-1 eA rndx) (w expt) (e l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w e l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA w e)))+  (deflistener (cat (exp (gen) e) (mul w l-2 eB)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)+    (e e))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (9 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))+    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))+  (absent (eB (mul eA w e)) (l-2 (mul eA w e)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w e l-2)) (gen))+    ((exp (gen) (mul w e l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-2 eB)+  (operation nonce-test (added-listener eB) (mul w l-2 eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA w e)))+      (send (cat (exp (gen) l-2) (mul eA w e))))+    ((recv (cat (exp (gen) e) (mul w l-2 eB)))+      (send (cat (exp (gen) e) (mul w l-2 eB))))+    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eB) (send eB)))+  (label 600)+  (parent 560)+  (unrealized (1 3) (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt)+    (l-0 l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 601)+  (parent 563)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt)+    (l-0 l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-0 l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))+      (send (cat (exp (gen) l-1) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))+      (send (cat (exp (gen) l-0) (mul w l-1 eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 602)+  (parent 564)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eB rndx) (w expt)+    (l-0 l-1 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eB l-0 l-1 eA)+  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))+      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eA) (send eA)))+  (label 603)+  (parent 568)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self name) (l eA rndx) (w expt)+    (l-0 l-1 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))+    (he (exp (gen) (mul w l-0 l-1 eB))) (l l-0) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 l-1))) (l l)+    (e eB))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))+  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)))+  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))+    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l-0 l)+    (eA l-0) (eB l) (eA l) (eB l-0))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l eA l-0 l-1 eB)+  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))+      (send (cat (exp (gen) l-1) (mul eA w l-0))))+    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))+      (send (cat (exp (gen) l-0) (mul w l-1 eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv eB) (send eB)))+  (label 604)+  (parent 569)+  (unrealized (1 3) (4 0) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)+    (l-1 l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w l-2 (rec eA))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))+  (absent (eA (mul (rec eB) w l-1)) (l-2 (mul (rec eB) w l-1)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1 l-2))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (operation nonce-test (added-listener eA) (mul w l-2 (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1 l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul (rec eB) w l-1)))+      (send (cat (exp (gen) l-2) (mul (rec eB) w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w l-2 (rec eA))))+      (send (cat (exp (gen) l-1) (mul w l-2 (rec eA)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eA) (send eA)))+  (label 605)+  (parent 574)+  (unrealized (1 3) (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)+    (l-1 l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1 l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA w l-1)))+  (deflistener (cat (exp (gen) l-1) (mul w l-2 eB)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (9 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))+  (absent (eB (mul eA w l-1)) (l-2 (mul eA w l-1)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1 l-2)) (gen))+    ((exp (gen) (mul w l-1 l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (operation nonce-test (added-listener eB) (mul w l-2 eB) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1 l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA w l-1)))+      (send (cat (exp (gen) l-2) (mul eA w l-1))))+    ((recv (cat (exp (gen) l-1) (mul w l-2 eB)))+      (send (cat (exp (gen) l-1) (mul w l-2 eB))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eB) (send eB)))+  (label 606)+  (parent 575)+  (unrealized (1 3) (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (deflistener l-2)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (9 0))+    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))+  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-1 self-0) (l-2 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-listener l-2) (mul w l-1 (rec l-2))+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2)))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1)) ((recv l-2) (send l-2)))+  (label 607)+  (parent 576)+  (unrealized (1 3) (4 0) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)+    (l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))+  (absent (eA (mul (rec eB) (rec l-1) w))+    (l-2 (mul (rec eB) (rec l-1) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))+  (neq ((exp (gen) (mul (rec eB) w)) (gen))+    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (operation nonce-test (added-listener eA) (mul w (rec l-2) (rec eA))+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eA) (send eA)))+  (label 608)+  (parent 580)+  (unrealized (1 3) (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)+    (l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (9 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))+  (absent (eB (mul eA (rec l-1) w)) (l-2 (mul eA (rec l-1) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))+  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (operation nonce-test (added-listener eB) (mul w (rec l-2) eB) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))+      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eB) (send eB)))+  (label 609)+  (parent 581)+  (unrealized (4 0) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-2))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w)))+  (defstrand ltx-gen 1 (self self) (l l-2))+  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self-0) (l l-1))+  (deflistener l-2)+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (9 0)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))+  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))+    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (6 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (added-listener l-2) (mul w (rec l-1) l-2)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-2) (mul eA (rec eB) w))))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))))+    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))+      (send (cat (exp (gen) l-1) (mul w (rec l-1) l-2))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))+      (send l-1)) ((recv l-2) (send l-2)))+  (label 610)+  (parent 582)+  (seen 611)+  (unrealized (1 3) (4 0) (9 0))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)+    (l-1 l-2 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))+  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))+  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA eB l-1 l-2)+  (operation nonce-test (displaced 6 10 ltx-gen 2) l-2 (9 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 611)+  (parent 607)+  (unrealized (1 3) (4 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 l-1 l-2 eA eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) l-1)) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (one)))+  (deflistener (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))+  (absent (l-2 (one)) (l-1 (one)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))+  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))+    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 l-2 eA eB)+  (operation nonce-test+    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((recv (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB)))+      (send (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 612)+  (parent 611)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 self-1 name)+    (l l-0 l-1 l-2 eA eB l-3 rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-3)))+    (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul l-1 l-3))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) l-3))+  (deflistener+    (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB l-3)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (defstrand ltx-gen 2 (self self-1) (l l-3))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0))+    ((10 0) (5 0)) ((10 1) (4 0)))+  (absent (l-2 l-3) (l-1 l-3))+  (fn-of+    ("principal-of" (l-3 self-1) (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-3))) kh)))+  (neq ((exp (gen) (mul l-1 l-3)) (gen))+    ((exp (gen) (mul l-1 (rec eA) eB l-3)) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 l-1 l-2 eA eB l-3)+  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-3)))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-3))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) l-3)) (send (cat (exp (gen) l-1) l-3)))+    ((recv (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB l-3)))+      (send (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB l-3))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2))+    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))+      (send l-3)))+  (label 613)+  (parent 611)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)+    (l-1 l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))+  (absent (eA (mul (rec eB) w)) (l-2 (mul (rec eB) w))+    (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (operation nonce-test (added-absence eA (mul (rec eB) w))+    (mul (rec eB) w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 614)+  (parent 611)+  (unrealized (0 3) (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)+    (l-1 l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))+  (absent (eB (mul eA w)) (l-2 (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)))+  (label 615)+  (parent 611)+  (unrealized (1 3) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)+    (l-1 l-2 eA rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)+    (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eA)+  (precedes ((0 2) (4 0)) ((0 2) (10 0)) ((1 2) (4 0)) ((1 2) (5 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0))+    ((10 1) (5 0)))+  (absent (eA (mul (rec eB) w)) (l-2 (mul (rec eB) w))+    (l-1 (mul (rec eB) w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))+  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))+    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)+    (eA l) (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eB l-1 l-2 eA)+  (operation nonce-test (added-listener eA)+    (mul w l-1 (rec l-2) (rec eA)) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))+      (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))+      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))+      (send (cat (exp (gen) l-1) (mul (rec eB) w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA)))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eA) (send eA)))+  (label 616)+  (parent 614)+  (unrealized (1 3) (4 0) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)+    (l-1 l-2 eB rndx))+  (defstrand participant 5 (kh kh) (self D) (peer B)+    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))+    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) l-1) (mul eA w)))+  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))+  (deflistener l-1)+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener l-2)+  (defstrand ltx-gen 2 (self self-0) (l l-2))+  (deflistener eB)+  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (10 0))+    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))+    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))+    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0))+    ((10 1) (5 0)))+  (absent (eB (mul eA w)) (l-2 (mul eA w)) (l-1 (mul eA w)))+  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))+        kh)))+  (neq ((exp (gen) (mul eA w l-1)) (gen))+    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)+    (eB l-0) (eA l-0) (eB l))+  (non-orig (privk B) (privk D) l l-0)+  (precur (5 0) (4 0))+  (uniq-gen l l-0 eA l-1 l-2 eB)+  (operation nonce-test (added-listener eB) (mul w l-1 (rec l-2) eB)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) l-1) (mul eA w)))+      (send (cat (exp (gen) l-1) (mul eA w))))+    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))+      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB))))+    ((recv l-1) (send l-1))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv l-2) (send l-2))+    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))+      (send l-2)) ((recv eB) (send eB)))+  (label 617)+  (parent 615)+  (unrealized (1 3) (4 0) (10 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l e rndx) (hl he base) (self peer name) (kh data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))+      (recv he) (send kh))+    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))+    (neq (he (gen))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self)))))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (hl he hl-0 he-0 base)+    (eA lA eB lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)+    (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D) (hl hl-0) (he he-0)+    (l lB) (e eB))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+  (fn-of+    (foo ((hash (exp hl-0 lB) (exp he-0 eB)) kh)+      ((hash (exp hl lA) (exp he eA)) kh)))+  (neq (he-0 (gen)) (he (gen)) (A B) (eA eB) (lA lB) (eA lA) (eB lB)+    (eA lB) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)+  (uniq-gen eA eB)+  (comment "Implicit authentication + disclosure")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)+      (send kh))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" hl-0 D (privk D))) (send (exp (gen) eB))+      (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+      (send (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))))+  (label 618)+  (unrealized (0 0) (0 1) (1 0) (1 1) (2 0))+  (preskeleton)+  (origs)+  (comment "Not a skeleton"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (hl he base) (lA lB eA eB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)+    (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp hl (mul lA (rec lB)))) (he (exp he (mul eA (rec eB))))+    (l lB) (e eB))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+  (precedes ((0 2) (1 3)) ((0 2) (2 0)) ((1 2) (2 0)))+  (fn-of (foo ((hash (exp hl lA) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)+  (uniq-gen eA eB)+  (comment "Implicit authentication + disclosure")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)+      (send kh))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" (exp hl (mul lA (rec lB))) D (privk D)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+      (send (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))))+  (label 619)+  (parent 618)+  (unrealized (0 0) (0 1) (1 0) (1 1) (1 3) (2 0))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A B C D name) (hl he base) (lA lB eA eB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)+    (l lA) (e eA))+  (defstrand participant 5 (kh kh) (self B) (peer D)+    (hl (exp hl (mul lA (rec lB)))) (he (exp he (mul eA (rec eB))))+    (l lB) (e eB))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+  (precedes ((0 2) (1 3)) ((0 2) (3 0)) ((1 2) (3 0)) ((3 1) (2 0)))+  (fn-of (foo ((hash (exp hl lA) (exp he eA)) kh)))+  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)+    (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)+  (uniq-gen eA eB)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+    (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)+      (send kh))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" (exp hl (mul lA (rec lB))) D (privk D)))+      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+      (send (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB)))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))+      (send (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))))+  (label 620)+  (parent 619)+  (unrealized (0 0) (0 1) (1 0) (1 1) (1 3) (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l e rndx) (hl he base) (self peer name) (kh data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))+      (recv he) (send kh))+    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))+    (neq (he (gen))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self)))))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lA lB)+  (comment "Implicit authentication + disclosure")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA)))))+  (label 621)+  (unrealized (0 0) (0 1) (1 0))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))+  (precedes ((2 1) (1 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lA lB)+  (operation encryption-test+    (added-listener (cat (exp (gen) (mul lA lB)) (exp he eA)))+    (hash (exp (gen) (mul lA lB)) (exp he eA)) (1 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))+      (send (cat (exp (gen) (mul lA lB)) (exp he eA)))))+  (label 622)+  (parent 621)+  (unrealized (0 0) (0 1) (2 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol iadh-um diffie-hellman+  (defrole participant+    (vars (l e rndx) (hl he base) (self peer name) (kh data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))+      (recv he) (send kh))+    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))+    (neq (he (gen))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self)))))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (uniq-gen eA)+  (comment "Implicit authentication + disclosure")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA)))))+  (label 623)+  (unrealized (0 0) (0 1) (1 0))+  (preskeleton)+  (origs)+  (comment "Not a skeleton"))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (precedes ((0 2) (1 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (uniq-gen eA)+  (comment "Implicit authentication + disclosure")+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA)))))+  (label 624)+  (parent 623)+  (unrealized (0 0) (0 1) (1 0))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (uniq-gen eA)+  (operation encryption-test+    (added-listener (cat (exp (gen) (mul lA lB)) (exp he eA)))+    (hash (exp (gen) (mul lA lB)) (exp he eA)) (1 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))+      (send (cat (exp (gen) (mul lA lB)) (exp he eA)))))+  (label 625)+  (parent 624)+  (unrealized (0 0) (0 1) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) lB) lA))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (uniq-gen eA)+  (operation nonce-test (added-listener (cat (exp (gen) lB) lA))+    (exp (gen) (mul lA lB)) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))+      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA))))+  (label 626)+  (parent 625)+  (unrealized (0 0) (0 1) (2 0) (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he he-0 hl base)+    (eA lA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))+      (send (hash (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))+      (send (cat (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 627)+  (parent 626)+  (unrealized (0 0) (0 1) (2 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))+      (send (hash (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))+      (send (cat (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 628)+  (parent 626)+  (unrealized (0 0) (0 1) (2 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) lB) lA))+  (deflistener (cat (exp (gen) (mul lB (rec w))) w))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (uniq-gen eA)+  (precur (4 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul lB (rec w))) w)) (exp (gen) lB)+    (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))+      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA)))+    ((recv (cat (exp (gen) (mul lB (rec w))) w))+      (send (cat (exp (gen) (mul lB (rec w))) w))))+  (label 629)+  (parent 626)+  (unrealized (0 0) (0 1) (2 0) (4 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (gen)))+  (deflistener (cat (exp (gen) (mul lA e)) (gen)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA)+  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (gen)))+      (send (hash (exp (gen) (mul lA e)) (gen))))+    ((recv (cat (exp (gen) (mul lA e)) (gen)))+      (send (cat (exp (gen) (mul lA e)) (gen))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 630)+  (parent 627)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))+  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen e-0)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-1)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 631)+  (parent 627)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA)+  (operation nonce-test (displaced 5 4 participant 3) (exp (gen) e-0)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) e))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 632)+  (parent 627)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA lA l e l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 2) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 633)+  (parent 627)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base)+    (eA lA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (2 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 634)+  (parent 627)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he he-0 hl base)+    (eA lA l e rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp he (mul eA (rec w))) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA)+  (precur (5 0))+  (operation nonce-test+    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))+      (send (hash (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))+      (send (cat (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp he (mul eA (rec w))) w))+      (send (cat (exp he (mul eA (rec w))) w))))+  (label 635)+  (parent 627)+  (unrealized (0 0) (0 1) (5 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (gen)))+  (deflistener (cat (exp (gen) (mul lA l)) (gen)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l)+  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (gen)))+      (send (hash (exp (gen) (mul lA l)) (gen))))+    ((recv (cat (exp (gen) (mul lA l)) (gen)))+      (send (cat (exp (gen) (mul lA l)) (gen))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 636)+  (parent 628)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen l e)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 637)+  (parent 628)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base)+    (eA lA l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 2) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) e)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) e)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 638)+  (parent 628)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l)+  (operation nonce-test (displaced 5 4 ltx-gen 1) (exp (gen) l-0) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) l))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 639)+  (parent 628)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA lA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (2 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 640)+  (parent 628)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx)+    (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp he (mul eA (rec w))) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l)+  (precur (5 0))+  (operation nonce-test+    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))+      (send (hash (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))+      (send (cat (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp he (mul eA (rec w))) w))+      (send (cat (exp he (mul eA (rec w))) w))))+  (label 641)+  (parent 628)+  (unrealized (0 0) (0 1) (5 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C name) (he he-0 base) (lB l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l l) (e e))+  (deflistener (hash (exp (gen) (mul lB l)) (exp he e)))+  (deflistener (cat (exp (gen) (mul lB l)) (exp he e)))+  (deflistener (cat (exp (gen) lB) l))+  (deflistener (cat (exp (gen) e) (mul lB (rec e))))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))+  (fn-of (foo ((hash (exp (gen) (mul lB l)) (exp he-0 e)) kh)))+  (neq (he-0 (gen)) (A C) (l lB) (e l) (e lB))+  (non-orig (privk A) (privk C) lB)+  (precur (4 0))+  (uniq-gen e)+  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) e)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lB l)) (exp he e)))+      (send (hash (exp (gen) (mul lB l)) (exp he e))))+    ((recv (cat (exp (gen) (mul lB l)) (exp he e)))+      (send (cat (exp (gen) (mul lB l)) (exp he e))))+    ((recv (cat (exp (gen) lB) l)) (send (cat (exp (gen) lB) l)))+    ((recv (cat (exp (gen) e) (mul lB (rec e))))+      (send (cat (exp (gen) e) (mul lB (rec e))))))+  (label 642)+  (parent 629)+  (unrealized (0 0) (0 1) (2 0) (3 0) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he he-0 hl base)+    (eA lA l lB e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) lB) lA))+  (deflistener (cat (exp (gen) e) (mul lB (rec e))))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (precur (4 0))+  (uniq-gen eA)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))+      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA)))+    ((recv (cat (exp (gen) e) (mul lB (rec e))))+      (send (cat (exp (gen) e) (mul lB (rec e)))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 643)+  (parent 629)+  (unrealized (0 0) (0 1) (2 0) (3 0) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he he-0 base) (eA lA lB l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))+  (deflistener (cat (exp (gen) lB) lA))+  (deflistener (cat (exp (gen) l) (mul lB (rec l))))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (4 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))+  (non-orig (privk A) (privk C) lB)+  (precur (4 0))+  (uniq-gen eA l)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lB) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))+      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))+      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))+    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA)))+    ((recv (cat (exp (gen) l) (mul lB (rec l))))+      (send (cat (exp (gen) l) (mul lB (rec l)))))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 644)+  (parent 629)+  (unrealized (0 0) (0 1) (2 0) (3 0) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (gen)))+      (send (hash (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) (mul e l-0)) (gen)))+      (send (cat (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 645)+  (parent 630)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen e-0 l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 646)+  (parent 631)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 647)+  (parent 632)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA l e l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 2) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-1 A))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 648)+  (parent 633)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (uniq-gen eA l-0)+  (operation encryption-test (displaced 6 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 649)+  (parent 634)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 650)+  (parent 634)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx)+    (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) w)))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (uniq-gen eA)+  (precur (5 0))+  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))+    (gen) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) w)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) w)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) w))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 651)+  (parent 635)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)+    (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen e-0)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))+  (label 652)+  (parent 635)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA rndx)+    (w expt) (l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((4 2) (5 0)) ((5 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA)+  (operation nonce-test (displaced 6 4 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 653)+  (parent 635)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA lA l e rndx) (w expt) (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 2) (5 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 654)+  (parent 635)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base)+    (eA lA l e rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) lA))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 655)+  (parent 635)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) (mul l l-0)) (gen)))+      (send (cat (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 656)+  (parent 636)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 657)+  (parent 637)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base)+    (eA l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 2) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 658)+  (parent 638)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 659)+  (parent 639)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 6 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 660)+  (parent 640)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 661)+  (parent 640)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA l rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (uniq-gen eA l)+  (precur (5 0))+  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))+    (gen) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) w)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) w)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) w))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 662)+  (parent 641)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)+    (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen l e)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 663)+  (parent 641)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base)+    (eA lA l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 664)+  (parent 641)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA rndx) (w expt)+    (l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l) w))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l)+  (operation nonce-test (displaced 6 4 ltx-gen 1) (exp (gen) l-0) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))+  (label 665)+  (parent 641)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA lA l rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) lA))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 666)+  (parent 641)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he he-0 hl base)+    (eA lA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA)+  (operation nonce-test (contracted (lB e) (e-0 e)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))+      (send (hash (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))+      (send (cat (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 667)+  (parent 643)+  (unrealized (0 0) (0 1) (2 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l)+  (operation nonce-test (contracted (lB l) (l-0 l)) (one) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))+      (send (hash (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))+      (send (cat (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 668)+  (parent 644)+  (unrealized (0 0) (0 1) (2 0))+  (comment "6 in cohort - 6 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (gen)))+      (send (hash (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) (mul e l-0)) (gen)))+      (send (cat (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 669)+  (parent 645)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (l e e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk C) (privk self-0) e)+  (uniq-gen e-0 l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 670)+  (parent 646)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 671)+  (parent 647)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 peer-0 self-1 name)+    (he hl hl-0 base) (eA l e l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 2) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (uniq-gen eA l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 672)+  (parent 648)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 673)+  (parent 649)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 0) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (uniq-gen eA l-0 l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 674)+  (parent 650)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 675)+  (parent 651)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)+    (e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen e-0 l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 676)+  (parent 652)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA rndx) (w expt)+    (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((4 2) (5 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 677)+  (parent 653)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 678)+  (parent 654)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation encryption-test (displaced 7 6 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 679)+  (parent 655)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (5 0))+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 680)+  (parent 655)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) (mul l l-0)) (gen)))+      (send (cat (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 681)+  (parent 656)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))+  (non-orig (privk C) (privk self-0) l)+  (uniq-gen l e l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 682)+  (parent 657)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)+    (eA l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 2) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (uniq-gen eA l l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 683)+  (parent 658)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 684)+  (parent 659)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 685)+  (parent 660)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (uniq-gen eA l l-0 l-1)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 686)+  (parent 661)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 687)+  (parent 662)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)+    (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 688)+  (parent 663)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base) (eA l rndx)+    (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 689)+  (parent 664)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 690)+  (parent 665)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 6 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 691)+  (parent 666)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (5 0))+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 692)+  (parent 666)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (gen)))+  (deflistener (cat (exp (gen) (mul lA e)) (gen)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA)+  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (gen)))+      (send (hash (exp (gen) (mul lA e)) (gen))))+    ((recv (cat (exp (gen) (mul lA e)) (gen)))+      (send (cat (exp (gen) (mul lA e)) (gen))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 693)+  (parent 667)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)))+  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen e-0)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 694)+  (parent 667)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA)+  (operation nonce-test (displaced 6 5 participant 3) (exp (gen) e-0)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) e))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 695)+  (parent 667)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA lA l e l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 2) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 696)+  (parent 667)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base)+    (eA lA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (2 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 697)+  (parent 667)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he he-0 hl base)+    (eA lA l e rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp he (mul eA (rec w))) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA)+  (operation nonce-test+    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))+      (send (hash (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))+      (send (cat (exp (gen) (mul lA e)) (exp he eA))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp he (mul eA (rec w))) w))+      (send (cat (exp he (mul eA (rec w))) w))))+  (label 698)+  (parent 667)+  (unrealized (0 0) (0 1) (6 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (gen)))+  (deflistener (cat (exp (gen) (mul lA l)) (gen)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l)+  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (gen)))+      (send (hash (exp (gen) (mul lA l)) (gen))))+    ((recv (cat (exp (gen) (mul lA l)) (gen)))+      (send (cat (exp (gen) (mul lA l)) (gen))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 699)+  (parent 668)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen l e)+  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 700)+  (parent 668)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base)+    (eA lA l l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) e)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) e)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 701)+  (parent 668)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l)+  (operation nonce-test (displaced 6 5 ltx-gen 1) (exp (gen) l-0) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) l))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self)))))+  (label 702)+  (parent 668)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA lA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 703)+  (parent 668)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx)+    (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he-0) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp he (mul eA (rec w))) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))+  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l)+  (operation nonce-test+    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)+    (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he-0) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))+      (send (hash (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))+      (send (cat (exp (gen) (mul lA l)) (exp he eA))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp he (mul eA (rec w))) w))+      (send (cat (exp he (mul eA (rec w))) w))))+  (label 704)+  (parent 668)+  (unrealized (0 0) (0 1) (6 0))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 705)+  (parent 675)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (l e rndx)+    (w expt) (e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk C) (privk self-0) e)+  (precur (5 0))+  (uniq-gen e-0 l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 706)+  (parent 676)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((4 2) (5 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 707)+  (parent 677)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 peer-0 self-1 name)+    (he hl hl-0 base) (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (precur (5 0))+  (uniq-gen eA l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 708)+  (parent 678)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (5 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 709)+  (parent 679)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)+    (eA l e rndx) (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))+    ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (precur (5 0))+  (uniq-gen eA l-0 l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 710)+  (parent 680)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 6 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) (mul l l-0)) (gen)))+      (send (cat (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 711)+  (parent 681)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen e l l-0)+  (operation encryption-test (displaced 6 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 712)+  (parent 682)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 2) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (displaced 7 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 713)+  (parent 683)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 6 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 714)+  (parent 684)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 6 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 715)+  (parent 685)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (displaced 7 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 716)+  (parent 686)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 717)+  (parent 687)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (l rndx) (w expt)+    (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))+  (non-orig (privk C) (privk self-0) l)+  (precur (5 0))+  (uniq-gen l e l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 718)+  (parent 688)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)+    (eA l rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (precur (5 0))+  (uniq-gen eA l l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 719)+  (parent 689)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 720)+  (parent 690)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-0))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 721)+  (parent 691)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 self-1 name) (he base) (eA l rndx)+    (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-1))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (precur (5 0))+  (uniq-gen eA l l-0 l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 722)+  (parent 692)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (gen)))+      (send (hash (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) (mul e l-0)) (gen)))+      (send (cat (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 723)+  (parent 693)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen e-0 l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 724)+  (parent 694)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 725)+  (parent 695)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA l e l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 2) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 726)+  (parent 696)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation encryption-test (displaced 7 6 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 727)+  (parent 697)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (4 0))+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 728)+  (parent 697)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx)+    (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) w)))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA)+  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))+    (gen) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) w)))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) w)))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) w))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 729)+  (parent 698)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)+    (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen e-0)+  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-1)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))+  (label 730)+  (parent 698)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA lA rndx)+    (w expt) (l e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (2 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA)+  (operation nonce-test (displaced 7 5 participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 731)+  (parent 698)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA lA l e rndx) (w expt) (l-0 e-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)))+  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA)+  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0))))+  (label 732)+  (parent 698)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base)+    (eA lA l e rndx) (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) lA))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 733)+  (parent 698)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) (mul l l-0)) (gen)))+      (send (cat (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 734)+  (parent 699)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 735)+  (parent 700)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base)+    (eA l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 736)+  (parent 701)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 737)+  (parent 702)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 6 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 738)+  (parent 703)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 739)+  (parent 703)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA l rndx) (w expt))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (gen) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l)+  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))+    (gen) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) w)))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) w)))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) w))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 740)+  (parent 704)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)+    (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen l e)+  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-0)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))+  (label 741)+  (parent 704)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base)+    (eA lA l rndx) (w expt) (l-0 e rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l)+  (operation nonce-test (added-strand participant 3) (exp (gen) e)+    (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))+  (label 742)+  (parent 704)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA lA rndx) (w expt)+    (l rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l) w))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l)+  (operation nonce-test (displaced 7 5 ltx-gen 1) (exp (gen) l-0) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))+  (label 743)+  (parent 704)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA lA l rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l lA) (e eA))+  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) lA))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 744)+  (parent 704)+  (unrealized (0 0) (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 745)+  (parent 711)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 746)+  (parent 712)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 2) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 747)+  (parent 713)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 748)+  (parent 714)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 749)+  (parent 715)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 750)+  (parent 716)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 751)+  (parent 717)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0))+  (uniq-gen e l l-0)+  (operation encryption-test (displaced 7 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 752)+  (parent 718)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (5 0))+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (displaced 8 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 753)+  (parent 719)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 754)+  (parent 720)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 755)+  (parent 721)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (5 0))+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (displaced 8 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 756)+  (parent 722)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (gen)))+      (send (hash (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) (mul e l-0)) (gen)))+      (send (cat (exp (gen) (mul e l-0)) (gen))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 757)+  (parent 723)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (l e e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk C) (privk self-0) e)+  (precur (4 0))+  (uniq-gen e-0 l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 758)+  (parent 724)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 759)+  (parent 725)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 peer-0 self-1 name)+    (he hl hl-0 base) (eA l e l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 2) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (precur (4 0))+  (uniq-gen eA l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 760)+  (parent 726)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base)+    (eA l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 761)+  (parent 727)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 0) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (precur (4 0))+  (uniq-gen eA l-0 l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 762)+  (parent 728)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 763)+  (parent 729)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)+    (e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen e-0 l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 764)+  (parent 730)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer name) (he hl base) (eA rndx) (w expt)+    (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 765)+  (parent 731)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)+    (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)) ((8 0) (0 0))+    ((8 0) (3 0)))+  (fn-of ("principal-of" (l-1 A))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 766)+  (parent 732)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation encryption-test (displaced 8 7 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 767)+  (parent 733)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)) ((8 0) (0 0))+    ((8 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk A) (privk C) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 768)+  (parent 733)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) (mul l l-0)) (gen)))+      (send (cat (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 769)+  (parent 734)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))+  (non-orig (privk C) (privk self-0) l)+  (precur (4 0))+  (uniq-gen l e l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 770)+  (parent 735)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)+    (eA l l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (precur (4 0))+  (uniq-gen eA l l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 771)+  (parent 736)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 772)+  (parent 737)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 773)+  (parent 738)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (precur (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 774)+  (parent 739)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 775)+  (parent 740)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)+    (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen l e l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 776)+  (parent 741)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 peer name) (he hl base) (eA l rndx)+    (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0))+    ((8 0) (0 0)) ((8 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 777)+  (parent 742)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 A) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 778)+  (parent 743)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 0) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 8 7 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))+  (label 779)+  (parent 744)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (A C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))+    (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0))+    ((8 0) (0 0)) ((8 0) (3 0)))+  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk A) (privk C) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 780)+  (parent 744)+  (unrealized (0 1) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 781)+  (parent 745)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (rec eA)))+        (A self-0) (C self) (he-0 he))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 782)+  (parent 746)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (eA e) (lA l) (lB l-0) (he (gen)) (A self-0) (C self)+        (he-0 he))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 2) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 783)+  (parent 747)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 784)+  (parent 748)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (eA eA) (lA l) (lB l-0)+        (he (exp (gen) (mul (rec eA) l-0))) (A self-0) (C self)+        (he-0 he))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 785)+  (parent 749)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (mul (rec eA) l)))+        (A self-0) (C self) (he-0 he))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 786)+  (parent 750)+  (seen 811)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 787)+  (parent 751)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 788)+  (parent 752)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (4 0))+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 789)+  (parent 753)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 790)+  (parent 754)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-0) l))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 791)+  (parent 755)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 792)+  (parent 756)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 793)+  (parent 763)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (l e rndx)+    (w expt) (e-0 l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))+  (non-orig (privk C) (privk self-0) e)+  (precur (6 0) (4 0))+  (uniq-gen e-0 l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) e-0)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 794)+  (parent 764)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 795)+  (parent 765)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 peer-0 self-1 name)+    (he hl hl-0 base) (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) e-0) w))+  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)+    (e e-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)) ((8 0) (0 0))+    ((8 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-1)+  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))+      (send (exp (gen) e-0)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 796)+  (parent 766)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)+    (w expt) (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) e)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-0))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))+  (non-orig (privk C) (privk self-0) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 797)+  (parent 767)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)+    (eA l e rndx) (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) e)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) e) l-1))+  (deflistener (cat (exp (gen) e) (one)))+  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)) ((8 0) (0 0))+    ((8 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))+  (non-orig (privk C) (privk self-1) e)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0 l-1)+  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) e) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))+    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 798)+  (parent 768)+  (unrealized (0 1))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) (mul l l-0)) (gen)))+      (send (cat (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 799)+  (parent 769)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen e l l-0)+  (operation encryption-test (displaced 7 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 800)+  (parent 770)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (4 0))+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (displaced 8 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 801)+  (parent 771)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 802)+  (parent 772)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 7 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 803)+  (parent 773)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (displaced 8 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 804)+  (parent 774)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 805)+  (parent 775)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (l rndx) (w expt)+    (e l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))+  (non-orig (privk C) (privk self-0) l)+  (precur (6 0) (4 0))+  (uniq-gen l e l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))+      (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 806)+  (parent 776)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)+    (eA l rndx) (w expt) (l-0 e l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0))+    ((8 0) (0 0)) ((8 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-1)+  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 807)+  (parent 777)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 808)+  (parent 778)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)+    (l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer C)+    (hl (exp (gen) l)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-0))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))+  (non-orig (privk C) (privk self-0) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 809)+  (parent 779)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (C self self-0 self-1 name) (he base) (eA l rndx)+    (w expt) (l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer C)+    (hl (exp (gen) l)) (he he) (l l-1) (e eA))+  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l) l-1))+  (deflistener (cat (exp (gen) l) (one)))+  (defstrand ltx-gen 1 (self self) (l l))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 1 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0))+    ((8 0) (0 0)) ((8 1) (3 0)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))+  (non-orig (privk C) (privk self-1) l)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l) C (privk C)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))+    ((send (enc "cert" (exp (gen) l) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 810)+  (parent 780)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 811)+  (parent 783)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (mul (rec eA) e)))+        (A self-0) (C self) (he-0 he))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 812)+  (parent 787)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 813)+  (parent 788)+  (seen 830)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 2) (3 0))+    ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (3 0))+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 814)+  (parent 789)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 815)+  (parent 790)+  (seen 830)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 816)+  (parent 791)+  (seen 830)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (3 0))+    ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (3 0))+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 817)+  (parent 792)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 818)+  (parent 799)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 819)+  (parent 800)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 2) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (3 0))+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 820)+  (parent 801)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 821)+  (parent 802)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 822)+  (parent 803)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 0) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (3 0))+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 823)+  (parent 804)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 8 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 824)+  (parent 805)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (6 0) (4 0))+  (uniq-gen e l l-0)+  (operation encryption-test (displaced 8 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 825)+  (parent 806)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0))+    ((8 0) (0 0)) ((8 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (6 0) (4 0))+  (uniq-gen eA l-0 l-1)+  (operation encryption-test (displaced 9 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 826)+  (parent 807)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 8 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 827)+  (parent 808)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))+    ((7 1) (3 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0)+  (operation encryption-test (displaced 8 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 828)+  (parent 809)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))+    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0))+    ((8 0) (0 0)) ((8 1) (3 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (6 0) (4 0))+  (uniq-gen eA l l-0 l-1)+  (operation encryption-test (displaced 9 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 829)+  (parent 810)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (uniq-gen eA l l-0)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 830)+  (parent 812)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (mul (rec eA) w)))+        (A self-0) (C self) (he-0 he))))+  (origs))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 2) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 831)+  (parent 814)+  (seen 830)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (1 0)) ((4 0) (0 0))+    ((4 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 832)+  (parent 817)+  (seen 830)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (2 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (gen)))+      (send (hash (exp (gen) (mul l l-0)) (gen))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 833)+  (parent 818)+  (seen 781)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (2 0))+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 834)+  (parent 819)+  (seen 782)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base)+    (eA l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 2) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (2 0))+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 835)+  (parent 820)+  (seen 783)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (2 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 836)+  (parent 821)+  (seen 784)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (0 0)) ((4 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (2 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 837)+  (parent 822)+  (seen 785)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base)+    (eA l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 0) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (2 0))+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 838)+  (parent 823)+  (seen 786)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0) (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 839)+  (parent 824)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0) (3 0))+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 840)+  (parent 825)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 2) (5 0)) ((7 0) (0 0))+    ((7 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (5 0) (3 0))+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 841)+  (parent 826)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0) (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 842)+  (parent 827)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-0) l))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (5 0) (3 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 843)+  (parent 828)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-1) l-0))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (5 0)) ((7 0) (0 0))+    ((7 1) (2 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (5 0) (3 0))+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 844)+  (parent 829)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (gen) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0) (2 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (gen) w)) (send (cat (gen) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 845)+  (parent 839)+  (seen 812)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e e))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) e) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0) (2 0))+  (uniq-gen e l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) e)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 846)+  (parent 840)+  (seen 813)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)+    (w expt) (l e l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) e) w))+  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)+    (e e))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (4 0) (2 0))+  (uniq-gen eA l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 847)+  (parent 841)+  (seen 814)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l-0) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0) (2 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 848)+  (parent 842)+  (seen 815)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)+    (l l-0 rndx))+  (defstrand participant 5 (kh kh) (self self-0) (peer self)+    (hl (exp (gen) l-0)) (he he) (l l) (e eA))+  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-0) (one)))+  (defstrand ltx-gen 1 (self self) (l l-0))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 2 (self self-0) (l l))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))+  (fn-of ("principal-of" (l-0 self) (l self-0))+    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))+  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))+  (non-orig (privk self) (privk self-0) l-0)+  (precur (4 0) (2 0))+  (uniq-gen eA l l-0)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-0) (one)))+      (send (cat (exp (gen) l-0) (one))))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))+  (label 849)+  (parent 843)+  (seen 816)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton iadh-um+  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)+    (l l-0 l-1 rndx))+  (defstrand participant 5 (kh kh) (self self-1) (peer self)+    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))+  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+  (deflistener (cat (exp (gen) l-1) (one)))+  (defstrand ltx-gen 1 (self self) (l l-1))+  (deflistener (cat (exp (gen) l) w))+  (defstrand ltx-gen 1 (self self-0) (l l))+  (defstrand ltx-gen 2 (self self-1) (l l-0))+  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))+    ((4 1) (1 0)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (1 0)))+  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))+    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))+  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))+  (non-orig (privk self) (privk self-1) l-1)+  (precur (4 0) (2 0))+  (uniq-gen eA l l-0 l-1)+  (operation generalization deleted (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv he) (send kh))+    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))+      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))+    ((recv (cat (exp (gen) l-1) (one)))+      (send (cat (exp (gen) l-1) (one))))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))))+    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))+    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))+    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))+      (send l-0)))+  (label 850)+  (parent 844)+  (seen 817)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(comment "Nothing left to do")
+ tst/iadh_umx.scm view
@@ -0,0 +1,53 @@+(herald "IADH: unified model (UM), criss-cross variant" (bound 20) (limit 2000) (algebra diffie-hellman))++(defprotocol iadh-umx diffie-hellman+  (defrole participant1+    (vars (l e rndx) (lp ep expt) (self peer name) (key n data))+    (trace+     (recv (enc "cert" (exp (gen) l) self (privk self)))+     (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+     (send (exp (gen) e))+     (recv (exp (gen) ep))+     (send key))+    (fn-of (foo ((hash (exp (gen) (mul lp e)) (exp (gen) (mul l ep))) key)))+    (uniq-gen e)+    (neq (ep (one))))+  (defrole participant2+    (vars (l e rndx) (lp ep expt) (self peer name) (key n data))+    (trace+     (recv (enc "cert" (exp (gen) l) self (privk self)))+     (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+     (send (exp (gen) e))+     (recv (exp (gen) ep))+     (send key))+    (fn-of (foo ((hash (exp (gen) (mul l ep)) (exp (gen) (mul lp e))) key)))+    (uniq-gen e)+    (neq (ep (one))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (enc "cert" (exp (gen) l) self (privk self)))+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))))+  )++;; Implicit authentication: participants will agree on the resulting key+;; foo(key).  Therefore they should agree on the names A and B.+ (defskeleton iadh-umx+  (vars (key data) (eA lA eB lB rndx) (A B C D name))+  (defstrand participant1 5 (key key) (e eA) (l lA) (self A) (peer C))+  (defstrand participant2 5 (key key) (e eB) (l lB) (self B) (peer D))+  (non-orig lA lB)+  (neq (eA eB))+  (non-orig (privk C) (privk D) (privk A) (privk B))+)++ ;; Security:+(defskeleton iadh-umx+  (vars (e1 e2 l rndx) (lp expt) (A B name))+  (defstrand participant1 5 (e e1) (l l) (ep e2) (lp lp) (self A) (peer B))+  (defstrand participant2 3 (e e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e1 l))))+  (non-orig (privk A) (privk B))+)
+ tst/iadh_umx.tst view
@@ -0,0 +1,3600 @@+(herald "IADH: unified model (UM), criss-cross variant" (bound 20)+  (limit 2000) (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/iadh_umx.scm")+(comment "Strand count bounded at 20")++(defprotocol iadh-umx diffie-hellman+  (defrole participant1+    (vars (l e rndx) (lp ep expt) (self peer name) (key data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))+    (uniq-gen e)+    (fn-of+      (foo ((hash (exp (gen) (mul e lp)) (exp (gen) (mul l ep))) key)))+    (neq (ep (one)))+    (absent (e (exp (gen) l)) (e (exp (gen) lp))))+  (defrole participant2+    (vars (l e rndx) (lp ep expt) (self peer name) (key data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))+    (uniq-gen e)+    (fn-of+      (foo ((hash (exp (gen) (mul l ep)) (exp (gen) (mul e lp))) key)))+    (neq (ep (one)))+    (absent (e (exp (gen) l)) (e (exp (gen) lp))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self)))))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (eA lA eB lB rndx)+    (lp ep lp-0 ep-0 expt))+  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)+    (lp lp) (ep ep))+  (defstrand participant2 5 (key key) (self B) (peer D) (l lB) (e eB)+    (lp lp-0) (ep ep-0))+  (absent (eB (exp (gen) lB)) (eB (exp (gen) lp-0)) (eA (exp (gen) lA))+    (eA (exp (gen) lp)))+  (fn-of+    (foo+      ((hash (exp (gen) (mul lB ep-0)) (exp (gen) (mul eB lp-0))) key)+      ((hash (exp (gen) (mul eA lp)) (exp (gen) (mul lA ep))) key)))+  (neq (ep-0 (one)) (eA eB) (ep (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)+  (uniq-gen eA eB)+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) ep)) (send key))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" (exp (gen) lp-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) ep-0)) (send key)))+  (label 0)+  (unrealized (0 0) (0 1) (1 0) (1 1))+  (preskeleton)+  (origs)+  (comment "Not a skeleton"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (lB rndx) (ep expt) (lA eB rndx)+    (lp expt) (eA rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)+    (lp (mul lB ep)) (ep (mul (rec lA) eB lp)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l lB) (e eB)+    (lp lp) (ep (mul ep eA)))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)))+  (absent (eB (exp (gen) lB)) (eB (exp (gen) lp)) (eA (exp (gen) lA))+    (eA (exp (gen) (mul lB ep))))+  (fn-of+    (foo+      ((hash (exp (gen) (mul lB ep eA)) (exp (gen) (mul eB lp))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB lp) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) lB lA)+  (uniq-gen eB eA)+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul lB ep)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB lp)))+      (send key))+    ((recv (enc "cert" (exp (gen) lB) B (privk B)))+      (recv (enc "cert" (exp (gen) lp) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key)))+  (label 1)+  (parent 0)+  (unrealized (0 0) (0 1) (0 3) (1 0) (1 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (ep expt) (lA eB rndx) (lp expt)+    (eA l rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)+    (lp (mul ep l)) (ep (mul (rec lA) eB lp)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp lp) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) lp)) (eA (exp (gen) lA))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l B))+    (foo+      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB lp))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB lp) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eB eA l)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l) B (privk B)) (1 0))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB lp)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) lp) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 2)+  (parent 1)+  (unrealized (0 0) (0 1) (0 3) (1 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C name) (ep expt) (lA eB eA l rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)+    (lp (mul ep l)) (ep (mul (rec lA) eB l)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) lA))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB l) (one)))+  (non-orig (privk A) (privk B) (privk C) lA l)+  (uniq-gen eB eA l)+  (operation encryption-test (displaced 3 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB l)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 3)+  (parent 2)+  (unrealized (0 0) (0 1) (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (ep expt) (lA eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)+    (lp (mul ep l)) (ep (mul (rec lA) eB l-0)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) lA))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB l-0) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))+  (traces+    ((recv (enc "cert" (exp (gen) lA) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 4)+  (parent 2)+  (unrealized (0 0) (0 1) (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C name) (ep expt) (eB eA l rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)+    (lp (mul ep l)) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l))) key)))+  (neq ((mul ep eA) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) l)+  (uniq-gen eB eA l)+  (operation encryption-test (displaced 3 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 5)+  (parent 3)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C name) (ep expt) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)+    (lp (mul ep l)) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 6)+  (parent 3)+  (unrealized (0 1) (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (ep expt) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)+    (lp (mul ep l-0)) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) (mul ep l-0))))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo+      ((hash (exp (gen) (mul ep eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk C) (privk D) l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) (mul ep l-0)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 7)+  (parent 4)+  (unrealized (0 1) (0 3))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (ep expt) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self D) (peer C) (l l-0) (e eA)+    (lp (mul ep l)) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-0))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul ep eA) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 8)+  (parent 4)+  (unrealized (0 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (ep expt) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l-1) (e eA)+    (lp (mul ep l)) (ep (mul eB l-0 (rec l-1))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul ep eA)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-1))+    (eA (exp (gen) (mul ep l))))+  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul ep eA) (one)) (eA eB) ((mul eB l-0 (rec l-1)) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l-0 (rec l-1))))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 9)+  (parent 4)+  (unrealized (0 1) (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B name) (eB eA l rndx))+  (defstrand participant1 5 (key key) (self B) (peer B) (l l) (e eA)+    (lp l) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l)))+  (fn-of ("principal-of" (l B))+    (foo ((hash (exp (gen) (mul eA l)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) (eB (one)))+  (non-orig (privk B) l)+  (uniq-gen eB eA l)+  (operation encryption-test (displaced 3 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B)))))+  (label 10)+  (parent 5)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((key key) (A B) (B B) (C B) (D B) (lB l) (ep (one)) (lA l)+        (eB eB) (lp l) (eA eA))))+  (origs))++(defskeleton iadh-umx+  (vars (key data) (B C name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self C) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (0 1)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 C) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) l)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) C (privk C)))))+  (label 11)+  (parent 5)+  (unrealized (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l A))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) l l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A)))))+  (label 12)+  (parent 6)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer A) (l l-0) (e eA)+    (lp l-0) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) l l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 13)+  (parent 6)+  (unrealized (0 3) (1 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 0) (0 1)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C)))))+  (label 14)+  (parent 6)+  (unrealized (0 3) (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer B) (l l-0) (e eA)+    (lp l-0) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk D) l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 15)+  (parent 7)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer D) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk D) l)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 16)+  (parent 7)+  (unrealized (0 3) (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)+    (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 1)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk C) (privk D) l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C)))))+  (label 17)+  (parent 7)+  (unrealized (0 3) (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self D) (peer B) (l l) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D)))))+  (label 18)+  (parent 8)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((key key) (A D) (B B) (C B) (D D) (lB l-0) (ep (one)) (lA l)+        (eB eB) (lp l) (eA eA))))+  (origs))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self D) (peer D) (l l-0) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eB eA l l-0)+  (operation encryption-test (displaced 4 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))+  (label 19)+  (parent 8)+  (unrealized (1 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self D) (peer C) (l l) (e eA)+    (lp l-1) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 1)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C)))))+  (label 20)+  (parent 8)+  (unrealized (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e eA)+    (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 B) (l-0 A) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (displaced 5 2 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 21)+  (parent 9)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer D) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l-1) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (defstrand ltx-gen 1 (self A) (l l))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 D) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk D) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (displaced 5 3 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((send (enc "cert" (exp (gen) l) A (privk A)))))+  (label 22)+  (parent 9)+  (unrealized (0 3) (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer A) (l l-1) (e eA)+    (lp l-1) (ep (mul eB l (rec l-1))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-1)) (one)))+  (non-orig (privk A) (privk B) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1)+  (operation encryption-test (displaced 5 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-1))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))+  (label 23)+  (parent 9)+  (unrealized (0 3) (1 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (eB eA l l-0 l-1 l-2 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)+    (lp l-2) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep (mul eA (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (defstrand ltx-gen 1 (self C) (l l-2))+  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((5 0) (0 1)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-2)))+  (fn-of ("principal-of" (l-2 C) (l-0 A) (l D) (l-1 B))+    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1 l-2)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-2) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))+      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((send (enc "cert" (exp (gen) l-2) C (privk C)))))+  (label 24)+  (parent 9)+  (unrealized (0 3) (1 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self C) (l l-0))+  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (0 1)) ((4 1) (1 3)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 C) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l))) l-0))+    (exp (gen) (mul eA (rec l) l-0)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) C (privk C))))+    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))+      (send (cat (exp (gen) (mul eA (rec l))) l-0))))+  (label 25)+  (parent 11)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self C) (l l-0))+  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (0 1)) ((4 1) (1 3)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 C) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))+    (exp (gen) (mul eA (rec l) l-0)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) C (privk C))))+    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))+      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))+  (label 26)+  (parent 11)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eB))+  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (4 0)) ((4 1) (0 3)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l A))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) l l-0)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eB))+    (exp (gen) (mul eB (rec l) l-0)) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul (rec l) l-0)) eB))+      (send (cat (exp (gen) (mul (rec l) l-0)) eB))))+  (label 27)+  (parent 12)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer A) (l l-0) (e eA)+    (lp l-0) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 1) (1 3)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 A) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) l l-0)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))+    (exp (gen) (mul eA (rec l) l-0)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))+      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))+  (label 28)+  (parent 13)+  (unrealized (0 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B C name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 0) (0 1)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))+  (label 29)+  (parent 14)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 0) (0 1)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) (privk C) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C))))+    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))+      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))+  (label 30)+  (parent 14)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer B) (l l-0) (e eA)+    (lp l-0) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eB (rec l-0))) l))+  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 1) (0 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk D) l-0)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eB (rec l-0))) l))+    (exp (gen) (mul eB l (rec l-0))) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eB (rec l-0))) l))+      (send (cat (exp (gen) (mul eB (rec l-0))) l))))+  (label 31)+  (parent 15)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer B) (l l-0) (e eA)+    (lp l-0) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul l (rec l-0))) eB))+  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 1) (0 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk D) l-0)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul l (rec l-0))) eB))+    (exp (gen) (mul eB l (rec l-0))) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul l (rec l-0))) eB))+      (send (cat (exp (gen) (mul l (rec l-0))) eB))))+  (label 32)+  (parent 15)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer D) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk D) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l))) l-0))+    (exp (gen) (mul eA (rec l) l-0)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))+      (send (cat (exp (gen) (mul eA (rec l))) l-0))))+  (label 33)+  (parent 16)+  (unrealized (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer D) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk D) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))+    (exp (gen) (mul eA (rec l) l-0)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))+      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))+  (label 34)+  (parent 16)+  (unrealized (0 3) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)+    (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk C) (privk D) l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))+  (label 35)+  (parent 17)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)+    (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk C) (privk D) l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C))))+    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))+      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))+  (label 36)+  (parent 17)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B D name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self D) (peer D) (l l-0) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (defstrand ltx-gen 1 (self D) (l l-0))+  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 D) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk D) l l-0)+  (uniq-gen eB eA l l-0)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))+    (exp (gen) (mul eA (rec l) l-0)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((send (enc "cert" (exp (gen) l-0) D (privk D))))+    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))+      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))+  (label 37)+  (parent 19)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self D) (peer C) (l l) (e eA)+    (lp l-1) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))+  (label 38)+  (parent 20)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self D) (peer C) (l l) (e eA)+    (lp l-1) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self C) (l l-1))+  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 C) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk C) (privk D) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) C (privk C))))+    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))+      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))+  (label 39)+  (parent 20)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e eA)+    (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul eB (rec l-0))) l))+  (precedes ((0 2) (1 3)) ((1 2) (5 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((4 0) (5 0)) ((5 1) (0 3)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 B) (l-0 A) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eB (rec l-0))) l))+    (exp (gen) (mul eB l (rec l-0))) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul eB (rec l-0))) l))+      (send (cat (exp (gen) (mul eB (rec l-0))) l))))+  (label 40)+  (parent 21)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e eA)+    (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul l (rec l-0))) eB))+  (precedes ((0 2) (1 3)) ((1 2) (5 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((4 0) (5 0)) ((5 1) (0 3)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 B) (l-0 A) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul l (rec l-0))) eB))+    (exp (gen) (mul eB l (rec l-0))) (0 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul l (rec l-0))) eB))+      (send (cat (exp (gen) (mul l (rec l-0))) eB))))+  (label 41)+  (parent 21)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer D) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l-1) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 D) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk D) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))+  (label 42)+  (parent 22)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer D) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l-1) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l-1))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 D) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk D) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l-1) D (privk D))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))+      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))+  (label 43)+  (parent 22)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer A) (l l-1) (e eA)+    (lp l-1) (ep (mul eB l (rec l-1))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-1))+  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-1)) (one)))+  (non-orig (privk A) (privk B) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))+    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) A (privk A)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-1))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-1) A (privk A))))+    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))+      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))+  (label 44)+  (parent 23)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (eB eA l l-0 l-1 l-2 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)+    (lp l-2) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep (mul eA (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (defstrand ltx-gen 1 (self C) (l l-2))+  (deflistener (cat (exp (gen) (mul eA (rec l-1))) l-2))+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((5 0) (0 1)) ((6 1) (1 3)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-2)))+  (fn-of ("principal-of" (l-2 C) (l-0 A) (l D) (l-1 B))+    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1 l-2)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul eA (rec l-1))) l-2))+    (exp (gen) (mul eA (rec l-1) l-2)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-2) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))+      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((send (enc "cert" (exp (gen) l-2) C (privk C))))+    ((recv (cat (exp (gen) (mul eA (rec l-1))) l-2))+      (send (cat (exp (gen) (mul eA (rec l-1))) l-2))))+  (label 45)+  (parent 24)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B C D name) (eB eA l l-0 l-1 l-2 rndx))+  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)+    (lp l-2) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep (mul eA (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (defstrand ltx-gen 1 (self C) (l l-2))+  (deflistener (cat (exp (gen) (mul (rec l-1) l-2)) eA))+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((5 0) (0 1)) ((6 1) (1 3)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-2)))+  (fn-of ("principal-of" (l-2 C) (l-0 A) (l D) (l-1 B))+    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1 l-2)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul (rec l-1) l-2)) eA))+    (exp (gen) (mul eA (rec l-1) l-2)) (1 3))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-2) C (privk C)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))+      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((send (enc "cert" (exp (gen) l-2) C (privk C))))+    ((recv (cat (exp (gen) (mul (rec l-1) l-2)) eA))+      (send (cat (exp (gen) (mul (rec l-1) l-2)) eA))))+  (label 46)+  (parent 24)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 1) (1 3)) ((4 0) (0 1)) ((4 1) (3 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk self) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test (displaced 3 5 ltx-gen 2) l-0 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))+      (send (cat (exp (gen) (mul eA (rec l))) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 47)+  (parent 25)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 48)+  (parent 29)+  (unrealized (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer B) (l l) (e eA)+    (lp l) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)+    (lp l-0) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) (mul eB (rec l))) l-0))+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (1 3)) ((1 2) (3 0)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 1) (0 3)) ((4 0) (1 1)) ((4 1) (3 0)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul eA l)) (exp (gen) (mul eB l-0))) key)))+  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk self) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test (displaced 3 5 ltx-gen 2) l-0 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) (mul eB (rec l))) l-0))+      (send (cat (exp (gen) (mul eB (rec l))) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 49)+  (parent 31)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))+  (defstrand ltx-gen 2 (self self) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 1) (1 3)) ((4 0) (0 1)) ((4 0) (1 1)) ((4 1) (3 0)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk self) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test (displaced 3 5 ltx-gen 2) l-0 (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))+      (send (cat (exp (gen) (mul eA (rec l))) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))+  (label 50)+  (parent 33)+  (unrealized (0 3) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self B) (peer self) (l l-0)+    (e eA) (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk D) (privk self) l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 51)+  (parent 35)+  (unrealized (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self D) (peer self) (l l) (e eA)+    (lp l-1) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1))+    ((5 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk D) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 52)+  (parent 38)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)+    (e eB) (lp l-1) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eB (rec l))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (4 0)) ((4 1) (0 3)) ((5 0) (1 1))+    ((5 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l A))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-1))) key)))+  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (displaced 3 6 ltx-gen 2) l-1 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eB (rec l))) l-1))+      (send (cat (exp (gen) (mul eB (rec l))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 53)+  (parent 40)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)+    (e eB) (lp l-1) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 0) (1 1))+    ((5 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (displaced 3 6 ltx-gen 2) l-1 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))+  (label 54)+  (parent 42)+  (unrealized (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B D self name) (eB eA l l-0 l-1 l-2 rndx))+  (defstrand participant1 5 (key key) (self A) (peer self) (l l-0)+    (e eA) (lp l-2) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep (mul eA (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul eA (rec l-1))) l-2))+  (defstrand ltx-gen 2 (self self) (l l-2))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)) ((6 0) (0 1))+    ((6 1) (5 0)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-2)))+  (fn-of ("principal-of" (l-2 self) (l-0 A) (l D) (l-1 B))+    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk D) (privk self) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1 l-2)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-2) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))+      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-1))) l-2))+      (send (cat (exp (gen) (mul eA (rec l-1))) l-2)))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))) (send l-2)))+  (label 55)+  (parent 45)+  (unrealized (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)+    (lp l-0) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)+    (lp l) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))+  (defstrand ltx-gen 2 (self self) (l l-0))+  (deflistener (cat (exp (gen) (rec l)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 1) (1 3)) ((4 0) (0 1)) ((4 1) (3 0)) ((5 1) (3 0)))+  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk self) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eA))+    (exp (gen) (mul eA (rec l))) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))+      (send (cat (exp (gen) (mul eA (rec l))) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((recv (cat (exp (gen) (rec l)) eA))+      (send (cat (exp (gen) (rec l)) eA))))+  (label 56)+  (parent 47)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)+    (lp l-0) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) (rec l-0)) eA))+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0))+    ((6 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk A) (privk B) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))+    (exp (gen) (mul eA (rec l-0))) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) (rec l-0)) eA))+      (send (cat (exp (gen) (rec l-0)) eA))))+  (label 57)+  (parent 48)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer B) (l l) (e eA)+    (lp l) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)+    (lp l-0) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) (mul eB (rec l))) l-0))+  (defstrand ltx-gen 2 (self self) (l l-0))+  (deflistener (cat (exp (gen) (rec l)) eB))+  (precedes ((0 2) (1 3)) ((1 2) (5 0)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 1) (0 3)) ((4 0) (1 1)) ((4 1) (3 0)) ((5 1) (3 0)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo ((hash (exp (gen) (mul eA l)) (exp (gen) (mul eB l-0))) key)))+  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk self) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eB))+    (exp (gen) (mul eB (rec l))) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) (mul eB (rec l))) l-0))+      (send (cat (exp (gen) (mul eB (rec l))) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((recv (cat (exp (gen) (rec l)) eB))+      (send (cat (exp (gen) (rec l)) eB))))+  (label 58)+  (parent 49)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (eB eA l l-0 rndx))+  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-0)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)+    (lp l-0) (ep (mul eA (rec l) l-0)))+  (defstrand ltx-gen 1 (self B) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))+  (defstrand ltx-gen 2 (self self) (l l-0))+  (deflistener (cat (exp (gen) (rec l)) eA))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 1) (1 3)) ((4 0) (0 1)) ((4 0) (1 1)) ((4 1) (3 0))+    ((5 1) (3 0)))+  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self) (l B))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))+  (neq ((mul eA (rec l) l-0) (one)) (eA eB)+    ((mul eB (rec l) l-0) (one)))+  (non-orig (privk B) (privk self) l)+  (uniq-gen eB eA l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eA))+    (exp (gen) (mul eA (rec l))) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))+      (send key))+    ((recv (enc "cert" (exp (gen) l) B (privk B)))+      (recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))+      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))+    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))+      (send (cat (exp (gen) (mul eA (rec l))) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))+    ((recv (cat (exp (gen) (rec l)) eA))+      (send (cat (exp (gen) (rec l)) eA))))+  (label 59)+  (parent 50)+  (unrealized (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self B) (peer self) (l l-0)+    (e eA) (lp l-1) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) (rec l-0)) eA))+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0))+    ((6 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk B) (privk D) (privk self) l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))+    (exp (gen) (mul eA (rec l-0))) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) (rec l-0)) eA))+      (send (cat (exp (gen) (rec l-0)) eA))))+  (label 60)+  (parent 51)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self D) (peer self) (l l) (e eA)+    (lp l-1) (ep eB))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)+    (lp l) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self D) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) (rec l-0)) eA))+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1))+    ((5 1) (4 0)) ((6 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l D) (l-0 B))+    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))+  (non-orig (privk B) (privk D) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))+    (exp (gen) (mul eA (rec l-0))) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) D (privk D)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) (rec l-0)) eA))+      (send (cat (exp (gen) (rec l-0)) eA))))+  (label 61)+  (parent 52)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)+    (lp l-0) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)+    (e eB) (lp l-1) (ep eA))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eB (rec l))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) (rec l)) eB))+  (precedes ((0 2) (1 3)) ((1 2) (6 0)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 0) (1 1))+    ((5 1) (4 0)) ((6 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-0)))+  (fn-of ("principal-of" (l-1 self) (l-0 B) (l A))+    (foo+      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-1))) key)))+  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eB))+    (exp (gen) (mul eB (rec l))) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eB (rec l))) l-1))+      (send (cat (exp (gen) (mul eB (rec l))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) (rec l)) eB))+      (send (cat (exp (gen) (rec l)) eB))))+  (label 62)+  (parent 53)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)+    (lp l-1) (ep (mul eB (rec l) l-1)))+  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)+    (e eB) (lp l-1) (ep (mul eA (rec l-0) l-1)))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))+  (defstrand ltx-gen 2 (self self) (l l-1))+  (deflistener (cat (exp (gen) (rec l-0)) eA))+  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 0) (1 1))+    ((5 1) (4 0)) ((6 1) (4 0)))+  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))+    (eA (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))+    (foo+      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))+  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)+    ((mul eB (rec l) l-1) (one)))+  (non-orig (privk A) (privk B) (privk self) l l-0)+  (uniq-gen eB eA l l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))+    (exp (gen) (mul eA (rec l-0))) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))+      (send key))+    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (recv (enc "cert" (exp (gen) l-1) self (privk self)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))+      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))+      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))+    ((recv (cat (exp (gen) (rec l-0)) eA))+      (send (cat (exp (gen) (rec l-0)) eA))))+  (label 63)+  (parent 54)+  (unrealized (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B D self name) (eB eA l l-0 l-1 l-2 rndx))+  (defstrand participant1 5 (key key) (self A) (peer self) (l l-0)+    (e eA) (lp l-2) (ep (mul eB l (rec l-0))))+  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)+    (lp l) (ep (mul eA (rec l-1) l-2)))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (defstrand ltx-gen 1 (self D) (l l))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul eA (rec l-1))) l-2))+  (defstrand ltx-gen 2 (self self) (l l-2))+  (deflistener (cat (exp (gen) (rec l-1)) eA))+  (precedes ((0 2) (7 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))+    ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)) ((6 0) (0 1))+    ((6 1) (5 0)) ((7 1) (5 0)))+  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))+    (eA (exp (gen) l-2)))+  (fn-of ("principal-of" (l-2 self) (l-0 A) (l D) (l-1 B))+    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))+  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)+    ((mul eB l (rec l-0)) (one)))+  (non-orig (privk A) (privk B) (privk D) (privk self) l-0 l-1)+  (uniq-gen eB eA l l-0 l-1 l-2)+  (operation nonce-test (added-listener (cat (exp (gen) (rec l-1)) eA))+    (exp (gen) (mul eA (rec l-1))) (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) l-2) self (privk self)))+      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))+      (send key))+    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (recv (enc "cert" (exp (gen) l) D (privk D)))+      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))+      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((send (enc "cert" (exp (gen) l) D (privk D))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul eA (rec l-1))) l-2))+      (send (cat (exp (gen) (mul eA (rec l-1))) l-2)))+    ((send (enc "cert" (exp (gen) l-2) self (privk self))) (send l-2))+    ((recv (cat (exp (gen) (rec l-1)) eA))+      (send (cat (exp (gen) (rec l-1)) eA))))+  (label 64)+  (parent 55)+  (unrealized (0 3) (7 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol iadh-umx diffie-hellman+  (defrole participant1+    (vars (l e rndx) (lp ep expt) (self peer name) (key data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))+    (uniq-gen e)+    (fn-of+      (foo ((hash (exp (gen) (mul e lp)) (exp (gen) (mul l ep))) key)))+    (neq (ep (one)))+    (absent (e (exp (gen) l)) (e (exp (gen) lp))))+  (defrole participant2+    (vars (l e rndx) (lp ep expt) (self peer name) (key data))+    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))+    (uniq-gen e)+    (fn-of+      (foo ((hash (exp (gen) (mul l ep)) (exp (gen) (mul e lp))) key)))+    (neq (ep (one)))+    (absent (e (exp (gen) l)) (e (exp (gen) lp))))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self)))))++(defskeleton iadh-umx+  (vars (key data) (A B self peer name) (e1 e2 l rndx) (lp expt)+    (l-0 rndx) (lp-0 expt))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e1)+    (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l-0) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))+  (absent (e2 (exp (gen) l-0)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l))+    (e1 (exp (gen) lp)))+  (fn-of+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e1 e2)+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))))+  (label 65)+  (unrealized (0 0) (0 1) (0 3) (2 0))+  (preskeleton)+  (origs)+  (comment "Not a skeleton"))++(defskeleton iadh-umx+  (vars (key data) (A B self peer name) (e1 e2 l rndx) (lp expt)+    (l-0 rndx) (lp-0 expt))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e1)+    (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l-0) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))+  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)))+  (absent (e2 (exp (gen) l-0)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l))+    (e1 (exp (gen) lp)))+  (fn-of+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e1 e2)+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))))+  (label 66)+  (parent 65)+  (unrealized (0 0) (0 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (l rndx) (lp expt) (e2 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)+    (lp lp) (ep e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))))+  (precedes ((0 2) (1 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))+  (fn-of+    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e2)+  (operation collapsed 1 0)+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))))+      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))))))+  (label 67)+  (parent 66)+  (unrealized (0 0) (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)+    (lp-0 expt) (l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)+    (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 0) (0 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) lp)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e1 e2 l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))+  (label 68)+  (parent 66)+  (unrealized (0 1) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (lp expt) (e2 l rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)+    (lp lp) (ep e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (defstrand ltx-gen 1 (self A) (l l))+  (precedes ((0 2) (1 0)) ((2 0) (0 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))+  (fn-of ("principal-of" (l A))+    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e2 l)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l) A (privk A)) (0 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((send (enc "cert" (exp (gen) l) A (privk A)))))+  (label 69)+  (parent 67)+  (unrealized (0 1) (1 0))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)+    (lp-0 expt) (l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)+    (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))+    ((4 1) (2 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) lp)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e1 e2 l-0)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+    (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))))+  (label 70)+  (parent 68)+  (unrealized (0 1) (4 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (lp expt) (e2 l rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)+    (lp lp) (ep e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (precedes ((0 2) (3 0)) ((2 0) (0 0)) ((3 1) (1 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))+  (fn-of ("principal-of" (l A))+    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e2 l)+  (operation encryption-test+    (added-listener+      (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+    (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) (1 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))))+  (label 71)+  (parent 69)+  (unrealized (0 1) (3 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)+    (lp-0 expt) (l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)+    (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))+    ((4 1) (2 0)) ((5 1) (4 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) lp)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e1 e2 l-0)+  (operation nonce-test (added-listener (cat (exp (gen) e1) l-0))+    (exp (gen) (mul e1 l-0)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0))))+  (label 72)+  (parent 70)+  (unrealized (0 1) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)+    (lp-0 expt) (l-0 rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)+    (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 1 (self A) (l l-0))+  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) l-0) e1))+  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))+    ((4 1) (2 0)) ((5 1) (4 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) lp)))+  (fn-of ("principal-of" (l-0 A))+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e1 e2 l-0)+  (operation nonce-test (added-listener (cat (exp (gen) l-0) e1))+    (exp (gen) (mul e1 l-0)) (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) A (privk A))))+    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) l-0) e1)) (send (cat (exp (gen) l-0) e1))))+  (label 73)+  (parent 70)+  (unrealized (0 1) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (lp expt) (e2 l rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)+    (lp lp) (ep e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (precedes ((0 2) (4 0)) ((2 0) (0 0)) ((3 1) (1 0)) ((4 1) (3 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))+  (fn-of ("principal-of" (l A))+    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e2 l)+  (operation nonce-test (added-listener (cat (exp (gen) e2) l))+    (exp (gen) (mul e2 l)) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l))))+  (label 74)+  (parent 71)+  (unrealized (0 1) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (A B name) (lp expt) (e2 l rndx))+  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)+    (lp lp) (ep e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (defstrand ltx-gen 1 (self A) (l l))+  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) l) e2))+  (precedes ((0 2) (4 0)) ((2 0) (0 0)) ((3 1) (1 0)) ((4 1) (3 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))+  (fn-of ("principal-of" (l A))+    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk A) (privk B))+  (uniq-gen e2 l)+  (operation nonce-test (added-listener (cat (exp (gen) l) e2))+    (exp (gen) (mul e2 l)) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) A (privk A)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((send (enc "cert" (exp (gen) l) A (privk A))))+    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) l) e2)) (send (cat (exp (gen) l) e2))))+  (label 75)+  (parent 71)+  (unrealized (0 1) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B self peer self-0 name) (e1 e2 rndx) (lp expt)+    (l rndx) (lp-0 expt) (l-0 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)+    (e e1) (lp lp) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp-0))+  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) lp)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self-0))+  (uniq-gen e1 e2 l-0)+  (operation nonce-test (displaced 3 6 ltx-gen 2) l-0 (5 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 76)+  (parent 72)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (lp expt) (e2 l rndx))+  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)+    (lp lp) (ep e2))+  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (defstrand ltx-gen 2 (self self) (l l))+  (precedes ((0 2) (3 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0))+    ((4 1) (3 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self))+  (uniq-gen e2 l)+  (operation nonce-test (displaced 2 5 ltx-gen 2) l (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))+    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l)))+  (label 77)+  (parent 74)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 name) (e1 e2 l rndx) (lp expt)+    (l-0 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-0)+    (l l-0) (e e1) (lp l-0) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-0)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0))+  (uniq-gen e1 e2 l-0)+  (operation encryption-test (displaced 6 5 ltx-gen 1)+    (enc "cert" (exp (gen) l-1) B (privk B)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 78)+  (parent 76)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self peer self-0 name) (e1 e2 l rndx) (lp expt)+    (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)+    (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 0) (0 1)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 B) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self-0))+  (uniq-gen e1 e2 l-0 l-1)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-1) B (privk B)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)) ((send (enc "cert" (exp (gen) l-1) B (privk B)))))+  (label 79)+  (parent 76)+  (unrealized (3 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (self name) (e2 l rndx))+  (defstrand participant1 5 (key key) (self self) (peer self) (l l)+    (e e2) (lp l) (ep e2))+  (deflistener (hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (defstrand ltx-gen 2 (self self) (l l))+  (precedes ((0 2) (3 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0))+    ((4 1) (3 0)))+  (absent (e2 (exp (gen) l)))+  (fn-of ("principal-of" (l self))+    (foo ((hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk self))+  (uniq-gen e2 l)+  (operation encryption-test (displaced 5 4 ltx-gen 1)+    (enc "cert" (exp (gen) l-0) B (privk B)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) l) self (privk self)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))+    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l)))+  (label 80)+  (parent 77)+  (unrealized)+  (shape)+  (maps)+  (origs))++(defskeleton iadh-umx+  (vars (key data) (B self name) (e2 l l-0 rndx))+  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)+    (lp l-0) (ep e2))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (defstrand ltx-gen 2 (self self) (l l))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (precedes ((0 2) (3 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0))+    ((4 1) (3 0)) ((5 0) (0 1)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l self))+    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self))+  (uniq-gen e2 l l-0)+  (operation encryption-test (added-strand ltx-gen 1)+    (enc "cert" (exp (gen) l-0) B (privk B)) (0 1))+  (traces+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))+    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    ((send (enc "cert" (exp (gen) l-0) B (privk B)))))+  (label 81)+  (parent 77)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 name) (e1 e2 l rndx) (lp expt)+    (l-0 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-0)+    (l l-0) (e e1) (lp l-0) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 1) (2 0))+    ((4 0) (0 0)) ((4 1) (3 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-0)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0))+  (uniq-gen e1 e2 l-0)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 82)+  (parent 78)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self peer self-0 name) (e1 e2 l rndx) (lp expt)+    (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)+    (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (deflistener (cat (exp (gen) e2) l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (7 0)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 0) (0 1))+    ((6 0) (7 0)) ((7 1) (3 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 B) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self-0))+  (uniq-gen e1 e2 l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) e2) l-1))+    (exp (gen) (mul e2 l-1)) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1))))+  (label 83)+  (parent 79)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self peer self-0 name) (e1 e2 l rndx) (lp expt)+    (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)+    (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (defstrand ltx-gen 1 (self B) (l l-1))+  (deflistener (cat (exp (gen) l-1) e2))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (7 0)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 0) (0 1))+    ((6 0) (7 0)) ((7 1) (3 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 B) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self-0))+  (uniq-gen e1 e2 l-0 l-1)+  (operation nonce-test (added-listener (cat (exp (gen) l-1) e2))+    (exp (gen) (mul e2 l-1)) (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) B (privk B)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))+    ((recv (cat (exp (gen) l-1) e2)) (send (cat (exp (gen) l-1) e2))))+  (label 84)+  (parent 79)+  (unrealized (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (e2 l l-0 rndx))+  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)+    (lp l-0) (ep e2))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (defstrand ltx-gen 2 (self self) (l l))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (deflistener (cat (exp (gen) e2) l-0))+  (precedes ((0 2) (3 0)) ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0))+    ((4 0) (0 0)) ((4 1) (3 0)) ((5 0) (0 1)) ((6 1) (2 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l self))+    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self))+  (uniq-gen e2 l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) e2) l-0))+    (exp (gen) (mul e2 l-0)) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))+    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((recv (cat (exp (gen) e2) l-0)) (send (cat (exp (gen) e2) l-0))))+  (label 85)+  (parent 81)+  (unrealized (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (B self name) (e2 l l-0 rndx))+  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)+    (lp l-0) (ep e2))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (defstrand ltx-gen 2 (self self) (l l))+  (defstrand ltx-gen 1 (self B) (l l-0))+  (deflistener (cat (exp (gen) l-0) e2))+  (precedes ((0 2) (3 0)) ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0))+    ((4 0) (0 0)) ((4 1) (3 0)) ((5 0) (0 1)) ((6 1) (2 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 B) (l self))+    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk B) (privk self))+  (uniq-gen e2 l l-0)+  (operation nonce-test (added-listener (cat (exp (gen) l-0) e2))+    (exp (gen) (mul e2 l-0)) (2 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) l-0) B (privk B)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))+    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    ((send (enc "cert" (exp (gen) l-0) B (privk B))))+    ((recv (cat (exp (gen) l-0) e2)) (send (cat (exp (gen) l-0) e2))))+  (label 86)+  (parent 81)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 name) (e1 e2 l rndx) (lp expt)+    (l-0 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-0)+    (l l-0) (e e1) (lp l-0) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 0) (0 0))+    ((3 1) (2 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-0)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0))+  (uniq-gen e1 e2 l-0)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 87)+  (parent 82)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((e1 e1) (e2 e2) (l l-0) (lp l-0) (A self-0) (B self-0) (key key)+        (l-0 l) (lp-0 lp) (self self) (peer peer))))+  (origs))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)+    (lp expt) (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-1)+    (l l-0) (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (deflistener (cat (exp (gen) e2) l-1))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (6 0)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 1) (3 0))+    ((7 0) (0 1)) ((7 1) (6 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0) (privk self-1))+  (uniq-gen e1 e2 l-0 l-1)+  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0))+    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 88)+  (parent 83)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (self self-0 name) (e2 l l-0 rndx))+  (defstrand participant1 5 (key key) (self self) (peer self-0) (l l)+    (e e2) (lp l-0) (ep e2))+  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+  (deflistener (cat (exp (gen) e2) l))+  (defstrand ltx-gen 2 (self self) (l l))+  (deflistener (cat (exp (gen) e2) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (precedes ((0 2) (3 0)) ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0))+    ((4 0) (0 0)) ((4 1) (3 0)) ((5 1) (2 0)) ((6 0) (0 1))+    ((6 1) (5 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))+  (fn-of ("principal-of" (l-0 self-0) (l self))+    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))+  (neq (e2 (one)))+  (non-orig (privk self) (privk self-0))+  (uniq-gen e2 l l-0)+  (operation nonce-test (displaced 5 7 ltx-gen 2) l-0 (6 0))+  (traces+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))+    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))+      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))+    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))+    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))+    ((recv (cat (exp (gen) e2) l-0)) (send (cat (exp (gen) e2) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0)))+  (label 89)+  (parent 85)+  (unrealized)+  (shape)+  (maps)+  (origs))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)+    (lp expt) (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-1)+    (l l-0) (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (deflistener (cat (exp (gen) e1) l-0))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (deflistener (cat (exp (gen) e2) l-1))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (5 0)) ((3 1) (2 0))+    ((4 0) (0 0)) ((4 1) (3 0)) ((5 1) (2 0)) ((6 0) (0 1))+    ((6 1) (5 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0) (privk self-1))+  (uniq-gen e1 e2 l-0 l-1)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0))+    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 90)+  (parent 88)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)+    (lp expt) (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-1)+    (l l-0) (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (deflistener (cat (exp (gen) e2) l-1))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))+    ((3 1) (2 0)) ((4 1) (2 0)) ((5 0) (0 1)) ((5 1) (4 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0) (privk self-1))+  (uniq-gen e1 e2 l-0 l-1)+  (operation generalization deleted (3 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0))+    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1)))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 91)+  (parent 90)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton iadh-umx+  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)+    (lp expt) (l-0 l-1 rndx))+  (defstrand participant1 5 (key key) (self self-0) (peer self-1)+    (l l-0) (e e1) (lp l-1) (ep e2))+  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)+    (lp lp))+  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+  (defstrand ltx-gen 2 (self self-0) (l l-0))+  (defstrand ltx-gen 2 (self self-1) (l l-1))+  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 0) (0 0))+    ((3 1) (2 0)) ((4 0) (0 1)) ((4 1) (2 0)))+  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))+    (e1 (exp (gen) l-1)))+  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))+    (foo+      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))+  (neq (e2 (one)))+  (non-orig (privk self-0) (privk self-1))+  (uniq-gen e1 e2 l-0 l-1)+  (operation generalization deleted (4 0))+  (traces+    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))+    ((recv (enc "cert" (exp (gen) l) self (privk self)))+      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))+      (send (exp (gen) e2)))+    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))+      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))+    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))+      (send l-0))+    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))+      (send l-1)))+  (label 92)+  (parent 91)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((e1 e1) (e2 e2) (l l-0) (lp l-1) (A self-0) (B self-1) (key key)+        (l-0 l) (lp-0 lp) (self self) (peer peer))))+  (origs))++(comment "Nothing left to do")
tst/injection.tst view
@@ -2,7 +2,7 @@   (comment "This protocol contains a man-in-the-middle"     "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/injection.scm")  (defprotocol ns diffie-hellman
tst/kerb.tst view
@@ -1,4 +1,4 @@-(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/kerb.scm")  (defprotocol kerb-flawed basic
tst/kerberos++.tst view
@@ -1,4 +1,4 @@-(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/kerberos++.scm")  (defprotocol kerberos basic
tst/lt_test.tst view
@@ -2,7 +2,7 @@   (comment "First and third skeletons should have a shape,"     "second and fourth should be dead.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/lt_test.scm")  (defprotocol lttest basic
tst/neq_test.tst view
@@ -2,7 +2,7 @@   (comment "First skeleton should have a shape,"     "second, and hird should be dead.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/neq_test.scm")  (defprotocol neqtest basic
+ tst/nh-ca-w-dh.scm view
@@ -0,0 +1,140 @@+; CA+; This is an authenticated form of a new-hope key exchange.++; The file contains one model of the CA protocol with the hint included in the+; encryption and one model fo the CA protocol with the hint not included in the+; encryption.++; Note: This version of nh-ca does use diffie hellman for the defined+; macros.++(herald nhca (algebra diffie-hellman) (bound 20))++(defmacro (nh_public x1)+  (exp (gen) x1))+(defmacro (nh_public2 x1 x2)+  (hash "share" (exp (gen) (mul x1 x2)) x1))+(defmacro (nh_hint x1 x2)+  (hash "hint" (nh_public2 x1 x2)))+(defmacro (nh_key_hint x1 x2 h)+  (hash "key" (nh_public2 x1 x2) h))+(defmacro (nh_key x1 x2)+  (nh_key_hint x1 x2 (nh_hint x1 x2)))++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace+     (send (enc "reg" (nh_public xi) a (privk a)))+     (recv (enc (nh_public xi) a (privk ca)))+     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))+        (enc n hint (nh_key_hint xi xr hint))))+     (send (cat (enc "check" n (nh_key_hint xi xr hint))+                (enc "check" n (nh_key_hint xr xi hint)))))+    (uniq-gen xi)+    (non-orig (privk a))+    (non-orig (privk ca)))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace+     (send (enc "reg" (nh_public xr) b (privk b)))+     (recv (enc (nh_public xr) b (privk ca)))+     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))+		(enc n (nh_hint xr xi) (nh_key xr xi))+        (enc n (nh_hint xr xi) (nh_key_hint xi xr (nh_hint xr xi)))))+     (recv (enc "check" n (nh_key xr xi))))+    (uniq-gen xr)+    (non-orig (privk b))+    (non-orig (privk ca)))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace+     (recv (enc "reg" (nh_public x) subject (privk subject)))+     (send (enc (nh_public x) subject (privk ca))))+    (non-orig (privk subject))+    )+  (comment A diffie-hellman exchange which uses a certificate+    authority to certify lonh-term NH values)+)++(defskeleton nhca+  (vars )+  (defstrand init 5 )+(comment Full initiator POV No need to make extra assumptions))++(defskeleton nhca+  (vars (n text))+  (defstrand resp 5 (n n))+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+)++(defskeleton nhca+  (vars (a b ca name) (xi xr rndx) (n text))+  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))+  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))+(uniq-orig n)+(comment point of view in which init and resp each complete and+    they agree on the relevant parameters)+)++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace+     (send (enc "reg" (nh_public xi) a (privk a)))+     (recv (enc (nh_public xi) a (privk ca)))+     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))+        (enc n (nh_key_hint xi xr hint))))+     (send (cat (enc "check" n (nh_key_hint xi xr hint))+                (enc "check" n (nh_key_hint xr xi hint)))))+    (uniq-gen xi)+    (non-orig (privk a))+    (non-orig (privk ca)))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace+     (send (enc "reg" (nh_public xr) b (privk b)))+     (recv (enc (nh_public xr) b (privk ca)))+     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))+		(enc n (nh_key xr xi))+        (enc n (nh_key_hint xi xr (nh_hint xr xi)))))+     (recv (enc "check" n (nh_key xr xi))))+    (uniq-gen xr)+    (non-orig (privk b))+    (non-orig (privk ca)))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace+     (recv (enc "reg" (nh_public x) subject (privk subject)))+     (send (enc (nh_public x) subject (privk ca))))+    (non-orig (privk subject))+    )+  (comment A diffie-hellman exchange which uses a certificate+    authority to certify lonh-term NH values)+)++(defskeleton nhca-nohint+  (vars )+  (defstrand init 5 )+(comment Full initiator POV No need to make extra assumptions))++(defskeleton nhca-nohint+  (vars (n text))+  (defstrand resp 5 (n n))+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+)++(defskeleton nhca-nohint+  (vars (a b ca name) (xi xr rndx) (n text))+  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))+  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))+(uniq-orig n)+(comment point of view in which init and resp each complete and+    they agree on the relevant parameters)+)
+ tst/nh-ca-w-dh.tst view
@@ -0,0 +1,35298 @@+(herald nhca (algebra diffie-hellman) (bound 20))++(comment "CPSA 3.6.7")+(comment "All input read from tst/nh-ca-w-dh.scm")+(comment "Strand count bounded at 20")++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))+      (send (enc (exp (gen) x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (comment Full initiator POV No need to make extra assumptions)+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint))))))+  (label 0)+  (unrealized (0 1) (0 3))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 1)+  (parent 0)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 2)+  (parent 1)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr x))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi x)) x)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 3)+  (parent 1)+  (unrealized (0 3) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))+  (label 4)+  (parent 2)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca)))))+  (label 5)+  (parent 3)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))))+  (label 6)+  (parent 3)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))+  (label 7)+  (parent 4)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))+  (label 8)+  (parent 5)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 3 4 resp 4)+    (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 9)+  (parent 6)+  (unrealized (3 1) (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 10)+  (parent 6)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi)) xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi)) xi))+    (hash "share" (exp (gen) (mul xi xi)) xi) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi)) xi))+      (send (cat "share" (exp (gen) (mul xi xi)) xi))))+  (label 11)+  (parent 7)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))+  (label 12)+  (parent 8)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (exp (gen) xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 13)+  (parent 9)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0)))))+  (label 14)+  (parent 9)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 15)+  (parent 10)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 16)+  (parent 12)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 17)+  (parent 13)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (origs))++(defskeleton nhca+  (vars (n text) (a ca a-0 b name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a-0) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))+      (send (enc (exp (gen) xi) a-0 (privk ca)))))+  (label 18)+  (parent 13)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 19)+  (parent 14)+  (seen 17)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))+      (send (enc (exp (gen) xi) a-0 (privk ca-0)))))+  (label 20)+  (parent 14)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))+    (hash "share" (exp (gen) (mul xi xr)) xi) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))+      (send (cat "share" (exp (gen) (mul xi xr)) xi))))+  (label 21)+  (parent 15)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (a ca b name) (xr xr-0 rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 22)+  (parent 18)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (origs))++(defskeleton nhca+  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0)))))+  (label 23)+  (parent 20)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (origs))++(comment "Nothing left to do")++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))+      (send (enc (exp (gen) x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr rndx) (xi expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))+  (label 24)+  (unrealized (0 1) (0 2) (0 4))+  (origs (n (0 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xi expt) (xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 25)+  (parent 24)+  (unrealized (0 2) (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (exp (gen) x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 26)+  (parent 25)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr rndx) (x expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr x)) x)+              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) x) a (privk a)))+      (send (enc (exp (gen) x) a (privk ca)))))+  (label 27)+  (parent 25)+  (unrealized (0 4) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 28)+  (parent 26)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 29)+  (parent 27)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))))+  (label 30)+  (parent 27)+  (unrealized (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 31)+  (parent 28)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 32)+  (parent 29)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 3 4 init 5)+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 33)+  (parent 30)+  (unrealized (3 1) (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+    (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (label 34)+  (parent 30)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 35)+  (parent 31)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 36)+  (parent 32)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a b-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (exp (gen) xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b-0 (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 37)+  (parent 33)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0)))))+  (label 38)+  (parent 33)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (label 39)+  (parent 34)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 40)+  (parent 36)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 41)+  (parent 37)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca+  (vars (n text) (b ca a b-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b-0 (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))+      (send (enc (exp (gen) xr) b-0 (privk ca)))))+  (label 42)+  (parent 37)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 43)+  (parent 38)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca+  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))+      (send (enc (exp (gen) xr) b-0 (privk ca-0)))))+  (label 44)+  (parent 38)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr-0)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr-0)) xr))+    (hash "share" (exp (gen) (mul xr xr-0)) xr) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr-0)) xr))+      (send (cat "share" (exp (gen) (mul xr xr-0)) xr))))+  (label 45)+  (parent 39)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 46)+  (parent 42)+  (seen 41)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0)))))+  (label 47)+  (parent 44)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(comment "Nothing left to do")++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))+      (send (enc (exp (gen) x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+  (label 48)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (preskeleton)+  (origs (n (1 3)))+  (comment "Not a skeleton"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (precedes ((1 3) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+  (label 49)+  (parent 48)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (origs (n (1 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr-0) b (privk ca)) (1 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 50)+  (parent 49)+  (unrealized (0 1) (0 3) (1 2) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 3 2 ca 2)+    (enc (exp (gen) x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 51)+  (parent 50)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) x)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) x) a (privk a)))+      (send (enc (exp (gen) x) a (privk ca)))))+  (label 52)+  (parent 50)+  (unrealized (0 1) (0 3) (1 4) (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 53)+  (parent 51)+  (unrealized (0 1) (0 3) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 resp 1)+    (enc "reg" (exp (gen) xr-2) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca)))))+  (label 54)+  (parent 52)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 resp 1)+    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 55)+  (parent 52)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))))+  (label 56)+  (parent 52)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))+    (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 57)+  (parent 53)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 init 5)+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 58)+  (parent 54)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 59)+  (parent 54)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 60)+  (parent 55)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 5 init 5)+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca-0))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))+  (label 61)+  (parent 56)+  (unrealized (0 1) (0 3) (4 1) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 62)+  (parent 56)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 63)+  (parent 57)+  (unrealized (0 1) (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 3 ca 2)+    (enc (exp (gen) xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 64)+  (parent 58)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))+        (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 65)+  (parent 58)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))+        (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))+    (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 66)+  (parent 59)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))+    (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 67)+  (parent 60)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 3 ca 2)+    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))+  (label 68)+  (parent 61)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca-0))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0)))))+  (label 69)+  (parent 61)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))+    (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 70)+  (parent 62)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (label 71)+  (parent 66)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 72)+  (parent 67)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 2 ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))))+  (label 73)+  (parent 68)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))+      (send (enc (exp (gen) xr-0) b-0 (privk ca)))))+  (label 74)+  (parent 68)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 75)+  (parent 69)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca-0))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))+      (send (enc (exp (gen) xr-0) b-0 (privk ca-0)))))+  (label 76)+  (parent 69)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))+    ((6 1) (5 0)) ((7 1) (6 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (label 77)+  (parent 70)+  (unrealized (0 1) (0 3) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 78)+  (parent 73)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 79)+  (parent 74)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 80)+  (parent 75)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca-0))+          (enc n+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca-0)))))+  (label 81)+  (parent 76)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 82)+  (parent 78)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 83)+  (parent 78)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 5 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 84)+  (parent 78)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 85)+  (parent 78)+  (unrealized (0 3) (6 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 86)+  (parent 79)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 87)+  (parent 80)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 88)+  (parent 80)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 89)+  (parent 80)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 90)+  (parent 80)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 91)+  (parent 81)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 92)+  (parent 82)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 93)+  (parent 83)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 94)+  (parent 84)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 95)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 96)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 97)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 98)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 99)+  (parent 86)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 100)+  (parent 86)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 101)+  (parent 86)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 102)+  (parent 86)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 103)+  (parent 87)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 104)+  (parent 88)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 105)+  (parent 89)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 106)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 107)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 108)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 109)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 110)+  (parent 91)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 111)+  (parent 91)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 7 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 112)+  (parent 91)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)+    (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 113)+  (parent 91)+  (unrealized (0 3) (8 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 114)+  (parent 92)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 115)+  (parent 93)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 116)+  (parent 94)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 117)+  (parent 95)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 118)+  (parent 96)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 119)+  (parent 97)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 120)+  (parent 98)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 121)+  (parent 99)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 122)+  (parent 100)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 123)+  (parent 101)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 124)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 125)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 126)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 127)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 128)+  (parent 103)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 129)+  (parent 104)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 130)+  (parent 105)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 131)+  (parent 106)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 132)+  (parent 107)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 133)+  (parent 108)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 134)+  (parent 109)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 135)+  (parent 110)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 136)+  (parent 111)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 137)+  (parent 112)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 138)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 9 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 139)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 140)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 141)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 142)+  (parent 114)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 143)+  (parent 115)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 144)+  (parent 116)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 145)+  (parent 117)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 146)+  (parent 118)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 147)+  (parent 119)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 148)+  (parent 120)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 149)+  (parent 121)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 150)+  (parent 122)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 151)+  (parent 123)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 152)+  (parent 124)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 153)+  (parent 125)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 154)+  (parent 126)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))+    ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 155)+  (parent 127)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 156)+  (parent 128)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 157)+  (parent 129)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 158)+  (parent 130)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 159)+  (parent 131)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 160)+  (parent 132)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 161)+  (parent 133)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 162)+  (parent 134)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 163)+  (parent 135)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 164)+  (parent 136)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 165)+  (parent 137)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 166)+  (parent 138)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 167)+  (parent 139)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 168)+  (parent 140)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (10 0)) ((10 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n hint+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 169)+  (parent 141)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 170)+  (parent 145)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 171)+  (parent 146)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 172)+  (parent 147)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 173)+  (parent 148)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 174)+  (parent 149)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 175)+  (parent 150)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 176)+  (parent 151)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 177)+  (parent 152)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 178)+  (parent 153)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 179)+  (parent 154)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 180)+  (parent 155)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 181)+  (parent 159)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 182)+  (parent 160)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 183)+  (parent 161)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))+    ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 184)+  (parent 162)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 185)+  (parent 163)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 186)+  (parent 164)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 187)+  (parent 165)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 188)+  (parent 166)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 189)+  (parent 167)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 190)+  (parent 168)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 191)+  (parent 169)+  (unrealized (0 3) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 192)+  (parent 177)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 193)+  (parent 178)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 194)+  (parent 179)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 195)+  (parent 180)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 196)+  (parent 188)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 197)+  (parent 189)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 198)+  (parent 190)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (11 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n hint+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 199)+  (parent 191)+  (unrealized (0 3) (12 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))+      (send (enc (exp (gen) x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (comment Full initiator POV No need to make extra assumptions)+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint))))))+  (label 200)+  (unrealized (0 1) (0 3))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 201)+  (parent 200)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 202)+  (parent 201)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr x))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi x)) x)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 203)+  (parent 201)+  (unrealized (0 3) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+    (enc n (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))+  (label 204)+  (parent 202)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca)))))+  (label 205)+  (parent 203)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))))+  (label 206)+  (parent 203)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))+  (label 207)+  (parent 204)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+    (enc n (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))+  (label 208)+  (parent 205)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 3 4 resp 4)+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 209)+  (parent 206)+  (unrealized (3 1) (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (enc n (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 210)+  (parent 206)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi)) xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi)) xi))+    (hash "share" (exp (gen) (mul xi xi)) xi) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi)) xi))+      (send (cat "share" (exp (gen) (mul xi xi)) xi))))+  (label 211)+  (parent 207)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))+  (label 212)+  (parent 208)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (exp (gen) xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 213)+  (parent 209)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0)))))+  (label 214)+  (parent 209)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 215)+  (parent 210)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 216)+  (parent 212)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 217)+  (parent 213)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (origs))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a-0) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))+      (send (enc (exp (gen) xi) a-0 (privk ca)))))+  (label 218)+  (parent 213)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 219)+  (parent 214)+  (seen 217)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))+      (send (enc (exp (gen) xi) a-0 (privk ca-0)))))+  (label 220)+  (parent 214)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))+    (hash "share" (exp (gen) (mul xi xr)) xi) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))+      (send (cat "share" (exp (gen) (mul xi xr)) xi))))+  (label 221)+  (parent 215)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (a ca b name) (xr xr-0 rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 222)+  (parent 218)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (origs))++(defskeleton nhca-nohint+  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca-0)))+      (recv+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0)))))+  (label 223)+  (parent 220)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (origs))++(comment "Nothing left to do")++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))+      (send (enc (exp (gen) x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr rndx) (xi expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))+  (label 224)+  (unrealized (0 1) (0 2) (0 4))+  (origs (n (0 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xi expt) (xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 225)+  (parent 224)+  (unrealized (0 2) (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (exp (gen) x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 226)+  (parent 225)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr rndx) (x expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr x)) x)+              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) x) a (privk a)))+      (send (enc (exp (gen) x) a (privk ca)))))+  (label 227)+  (parent 225)+  (unrealized (0 4) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 228)+  (parent 226)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 229)+  (parent 227)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))))+  (label 230)+  (parent 227)+  (unrealized (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (2 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 231)+  (parent 228)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 232)+  (parent 229)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 3 4 init 5)+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 233)+  (parent 230)+  (unrealized (3 1) (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+    (0 4))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (label 234)+  (parent 230)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 235)+  (parent 231)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 236)+  (parent 232)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (exp (gen) xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 237)+  (parent 233)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0)))))+  (label 238)+  (parent 233)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+  (label 239)+  (parent 234)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 240)+  (parent 236)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 241)+  (parent 237)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))+      (send (enc (exp (gen) xr) b-0 (privk ca)))))+  (label 242)+  (parent 237)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 243)+  (parent 238)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))+      (send (enc (exp (gen) xr) b-0 (privk ca-0)))))+  (label 244)+  (parent 238)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr-0)) xr))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr-0)) xr))+    (hash "share" (exp (gen) (mul xr xr-0)) xr) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr-0)) xr))+      (send (cat "share" (exp (gen) (mul xr xr-0)) xr))))+  (label 245)+  (parent 239)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 246)+  (parent 242)+  (seen 241)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0)))))+  (label 247)+  (parent 244)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(comment "Nothing left to do")++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))+      (send (enc (exp (gen) x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+  (label 248)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (preskeleton)+  (origs (n (1 3)))+  (comment "Not a skeleton"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (precedes ((1 3) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+  (label 249)+  (parent 248)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (origs (n (1 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr-0) b (privk ca)) (1 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 250)+  (parent 249)+  (unrealized (0 1) (0 3) (1 2) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 3 2 ca 2)+    (enc (exp (gen) x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 251)+  (parent 250)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) x)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) x) a (privk a)))+      (send (enc (exp (gen) x) a (privk ca)))))+  (label 252)+  (parent 250)+  (unrealized (0 1) (0 3) (1 4) (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 253)+  (parent 251)+  (unrealized (0 1) (0 3) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 resp 1)+    (enc "reg" (exp (gen) xr-2) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca)))))+  (label 254)+  (parent 252)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 resp 1)+    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 255)+  (parent 252)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))))+  (label 256)+  (parent 252)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))+    (3 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 257)+  (parent 253)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 init 5)+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 258)+  (parent 254)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 259)+  (parent 254)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 260)+  (parent 255)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 5 init 5)+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))+  (label 261)+  (parent 256)+  (unrealized (0 1) (0 3) (4 1) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (enc "check" n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (1 4))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 262)+  (parent 256)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 263)+  (parent 257)+  (unrealized (0 1) (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 3 ca 2)+    (enc (exp (gen) xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 264)+  (parent 258)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))+        (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 265)+  (parent 258)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))+        (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))+    (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 266)+  (parent 259)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))+    (4 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+  (label 267)+  (parent 260)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 3 ca 2)+    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))+  (label 268)+  (parent 261)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0)))))+  (label 269)+  (parent 261)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))+    (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+  (label 270)+  (parent 262)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))+      (recv (enc (exp (gen) xr-1) a (privk ca)))+      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (label 271)+  (parent 266)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) b (privk b)))+      (recv (enc (exp (gen) xi) b (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 272)+  (parent 267)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 2 ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))))+  (label 273)+  (parent 268)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))+      (send (enc (exp (gen) xr-0) b-0 (privk ca)))))+  (label 274)+  (parent 268)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 275)+  (parent 269)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))+      (send (enc (exp (gen) xr-0) b-0 (privk ca-0)))))+  (label 276)+  (parent 269)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))+    ((6 1) (5 0)) ((7 1) (6 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))+      (send (enc (exp (gen) xr-1) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)+          (hash "hint"+            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))+  (label 277)+  (parent 270)+  (unrealized (0 1) (0 3) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 278)+  (parent 273)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca)))))+  (label 279)+  (parent 274)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 280)+  (parent 275)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca-0)))))+  (label 281)+  (parent 276)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 282)+  (parent 278)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 283)+  (parent 278)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 5 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 284)+  (parent 278)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 285)+  (parent 278)+  (unrealized (0 3) (6 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 286)+  (parent 279)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 287)+  (parent 280)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 288)+  (parent 280)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 289)+  (parent 280)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 290)+  (parent 280)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))+    (n n) (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))+      (recv (enc (exp (gen) xr-0) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+            (hash "hint"+              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc (exp (gen) xr-0) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 291)+  (parent 281)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 292)+  (parent 282)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 293)+  (parent 283)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 294)+  (parent 284)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 295)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 296)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 297)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 298)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 299)+  (parent 286)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 300)+  (parent 286)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 301)+  (parent 286)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 302)+  (parent 286)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 303)+  (parent 287)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 304)+  (parent 288)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 305)+  (parent 289)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 306)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 307)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 308)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 309)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 2 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 310)+  (parent 291)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 3 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca)))))+  (label 311)+  (parent 291)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 7 ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca)))))+  (label 312)+  (parent 291)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)+    (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (exp (gen) x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) x) b (privk b)))+      (send (enc (exp (gen) x) b (privk ca)))))+  (label 313)+  (parent 291)+  (unrealized (0 3) (8 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 314)+  (parent 292)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 315)+  (parent 293)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (6 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 316)+  (parent 294)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 317)+  (parent 295)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 318)+  (parent 296)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 319)+  (parent 297)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 320)+  (parent 298)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 321)+  (parent 299)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 322)+  (parent 300)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 323)+  (parent 301)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 324)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 325)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 326)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 327)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 328)+  (parent 303)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 329)+  (parent 304)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 330)+  (parent 305)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 331)+  (parent 306)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 332)+  (parent 307)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 333)+  (parent 308)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 334)+  (parent 309)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 335)+  (parent 310)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 336)+  (parent 311)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 337)+  (parent 312)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 0 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 338)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 9 1 resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca)))))+  (label 339)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 4 resp 1)+    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca)))))+  (label 340)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))+  (label 341)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 342)+  (parent 314)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 343)+  (parent 315)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 344)+  (parent 316)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 345)+  (parent 317)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 346)+  (parent 318)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 347)+  (parent 319)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 348)+  (parent 320)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 349)+  (parent 321)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 350)+  (parent 322)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (7 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 351)+  (parent 323)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 352)+  (parent 324)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 353)+  (parent 325)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 354)+  (parent 326)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))+    ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 355)+  (parent 327)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 356)+  (parent 328)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 357)+  (parent 329)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 358)+  (parent 330)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 359)+  (parent 331)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 360)+  (parent 332)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 361)+  (parent 333)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 362)+  (parent 334)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 363)+  (parent 335)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))+  (label 364)+  (parent 336)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint))))+  (label 365)+  (parent 337)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 366)+  (parent 338)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 367)+  (parent 339)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 368)+  (parent 340)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (10 0)) ((10 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (enc n+      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (0 3))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 369)+  (parent 341)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 370)+  (parent 345)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 371)+  (parent 346)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 372)+  (parent 347)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 373)+  (parent 348)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 374)+  (parent 349)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 375)+  (parent 350)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 376)+  (parent 351)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 377)+  (parent 352)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 378)+  (parent 353)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 379)+  (parent 354)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 380)+  (parent 355)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 381)+  (parent 359)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 382)+  (parent 360)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 383)+  (parent 361)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))+    ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 384)+  (parent 362)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 385)+  (parent 363)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))+    (hash "share" (exp (gen) (mul xi xi-0)) xi) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))+  (label 386)+  (parent 364)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))+  (label 387)+  (parent 365)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint))))+  (label 388)+  (parent 366)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)+    (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint))))+  (label 389)+  (parent 367)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))+  (label 390)+  (parent 368)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)+    (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint))))+  (label 391)+  (parent 369)+  (unrealized (0 3) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 392)+  (parent 377)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 393)+  (parent 378)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 394)+  (parent 379)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 395)+  (parent 380)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca)))+      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))+      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))+  (label 396)+  (parent 388)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))+  (label 397)+  (parent 389)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))+    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))+    (hash "share" (exp (gen) (mul xi xr-0)) xi) (10 0))+  (traces+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) a (privk a)))+      (recv (enc (exp (gen) xr) a (privk ca)))+      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))+      (recv (enc (exp (gen) xr-0) a (privk ca-0)))+      (send+        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))+          (enc (exp (gen) xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) a (privk a)))+      (send (enc (exp (gen) xr) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))+      (send (enc (exp (gen) xr-0) a (privk ca))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))+      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))+  (label 398)+  (parent 390)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (11 0))+  (traces+    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))+      (recv (enc (exp (gen) xi-0) a (privk ca)))+      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))+      (recv+        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+              hint))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)+              hint)))))+    ((send (enc "reg" (exp (gen) xr) b (privk b)))+      (recv (enc (exp (gen) xr) b (privk ca)))+      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca))))+    ((send (enc "reg" (exp (gen) xi) a (privk a)))+      (recv (enc (exp (gen) xi) a (privk ca-0)))+      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (exp (gen) xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc "check" n+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr)))))))+    ((recv (enc "reg" (exp (gen) xi) a (privk a)))+      (send (enc (exp (gen) xi) a (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xr) b (privk b)))+      (send (enc (exp (gen) xr) b (privk ca-0))))+    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))+      (send (enc (exp (gen) xi-0) a (privk ca))))+    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))+      (send (enc (exp (gen) xr-0) b (privk ca))))+    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+         hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)+          hint)))+    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))+      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))+  (label 399)+  (parent 391)+  (unrealized (0 3) (12 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/nh-ca.scm view
@@ -0,0 +1,140 @@+; CA+; This is an authenticated form of a new-hope key exchange.++; The file contains one model of the CA protocol with the hint included in the+; encryption and one model fo the CA protocol with the hint not included in the+; encryption.++; Note: This version of nh-ca does not use diffie hellman for the defined+; macros.++(herald nhca (algebra diffie-hellman) (bound 20))++(defmacro (nh_public x1)+  (hash "public" x1))+(defmacro (nh_public2 x1 x2)+  (hash "share" x1 x2))+(defmacro (nh_hint x1 x2)+  (hash "hint" (nh_public2 x1 x2)))+(defmacro (nh_key_hint x1 x2 h)+  (hash "key" (nh_public2 x1 x2) h))+(defmacro (nh_key x1 x2)+  (nh_key_hint x1 x2 (nh_hint x1 x2)))++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace+     (send (enc "reg" (nh_public xi) a (privk a)))+     (recv (enc (nh_public xi) a (privk ca)))+     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))+        (enc n hint (nh_key_hint xi xr hint))))+     (send (cat (enc "check" n (nh_key_hint xi xr hint))+                (enc "check" n (nh_key_hint xr xi hint)))))+    (uniq-gen xi)+    (non-orig (privk a))+    (non-orig (privk ca)))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace+     (send (enc "reg" (nh_public xr) b (privk b)))+     (recv (enc (nh_public xr) b (privk ca)))+     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))+		(enc n (nh_hint xr xi) (nh_key xr xi))+        (enc n (nh_hint xr xi) (nh_key_hint xi xr (nh_hint xr xi)))))+     (recv (enc "check" n (nh_key xr xi))))+    (uniq-gen xr)+    (non-orig (privk b))+    (non-orig (privk ca)))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace+     (recv (enc "reg" (nh_public x) subject (privk subject)))+     (send (enc (nh_public x) subject (privk ca))))+    (non-orig (privk subject))+    )+  (comment A diffie-hellman exchange which uses a certificate+    authority to certify lonh-term NH values)+)++(defskeleton nhca+  (vars )+  (defstrand init 5 )+(comment Full initiator POV No need to make extra assumptions))++(defskeleton nhca+  (vars (n text))+  (defstrand resp 5 (n n))+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+)++(defskeleton nhca+  (vars (a b ca name) (xi xr rndx) (n text))+  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))+  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))+(uniq-orig n)+(comment point of view in which init and resp each complete and+    they agree on the relevant parameters)+)++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace+     (send (enc "reg" (nh_public xi) a (privk a)))+     (recv (enc (nh_public xi) a (privk ca)))+     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))+        (enc n (nh_key_hint xi xr hint))))+     (send (cat (enc "check" n (nh_key_hint xi xr hint))+                (enc "check" n (nh_key_hint xr xi hint)))))+    (uniq-gen xi)+    (non-orig (privk a))+    (non-orig (privk ca)))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace+     (send (enc "reg" (nh_public xr) b (privk b)))+     (recv (enc (nh_public xr) b (privk ca)))+     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))+     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))+		(enc n (nh_key xr xi))+        (enc n (nh_key_hint xi xr (nh_hint xr xi)))))+     (recv (enc "check" n (nh_key xr xi))))+    (uniq-gen xr)+    (non-orig (privk b))+    (non-orig (privk ca)))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace+     (recv (enc "reg" (nh_public x) subject (privk subject)))+     (send (enc (nh_public x) subject (privk ca))))+    (non-orig (privk subject))+    )+  (comment A diffie-hellman exchange which uses a certificate+    authority to certify lonh-term NH values)+)++(defskeleton nhca-nohint+  (vars )+  (defstrand init 5 )+(comment Full initiator POV No need to make extra assumptions))++(defskeleton nhca-nohint+  (vars (n text))+  (defstrand resp 5 (n n))+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+)++(defskeleton nhca-nohint+  (vars (a b ca name) (xi xr rndx) (n text))+  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))+  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))+(uniq-orig n)+(comment point of view in which init and resp each complete and+    they agree on the relevant parameters)+)
+ tst/nh-ca.tst view
@@ -0,0 +1,30605 @@+(herald nhca (algebra diffie-hellman) (bound 20))++(comment "CPSA 3.6.7")+(comment "All input read from tst/nh-ca.scm")+(comment "Strand count bounded at 20")++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))+      (send (enc (hash "public" x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (comment Full initiator POV No need to make extra assumptions)+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint))))))+  (label 0)+  (unrealized (0 1) (0 3))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 1)+  (parent 0)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 2)+  (parent 1)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr x))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi x) hint))+          (enc "check" n (hash "key" (hash "share" x xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 3)+  (parent 1)+  (unrealized (0 3) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi) hint))+    (enc n hint (hash "key" (hash "share" xi xi) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi) hint))+      (send (hash "key" (hash "share" xi xi) hint))))+  (label 4)+  (parent 2)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca)))))+  (label 5)+  (parent 3)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))))+  (label 6)+  (parent 3)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi) hint))+  (deflistener (cat "key" (hash "share" xi xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi) hint))+    (hash "key" (hash "share" xi xi) hint) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi) hint))+      (send (hash "key" (hash "share" xi xi) hint)))+    ((recv (cat "key" (hash "share" xi xi) hint))+      (send (cat "key" (hash "share" xi xi) hint))))+  (label 7)+  (parent 4)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xr xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr xr) hint))+    (enc n hint (hash "key" (hash "share" xr xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (hash "key" (hash "share" xr xr) hint))+      (send (hash "key" (hash "share" xr xr) hint))))+  (label 8)+  (parent 5)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 3 4 resp 4)+    (enc n (hash "hint" (hash "share" xr xi))+      (hash "key" (hash "share" xi xr)+        (hash "hint" (hash "share" xr xi)))) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))))+  (label 9)+  (parent 6)+  (unrealized (3 1) (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener (hash "key" (hash "share" xi xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr) hint))+    (enc n hint (hash "key" (hash "share" xi xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b))))+    ((recv (hash "key" (hash "share" xi xr) hint))+      (send (hash "key" (hash "share" xi xr) hint))))+  (label 10)+  (parent 6)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi) hint))+  (deflistener (cat "key" (hash "share" xi xi) hint))+  (deflistener (cat "share" xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-listener (cat "share" xi xi))+    (hash "share" xi xi) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi) hint))+      (send (hash "key" (hash "share" xi xi) hint)))+    ((recv (cat "key" (hash "share" xi xi) hint))+      (send (cat "key" (hash "share" xi xi) hint)))+    ((recv (cat "share" xi xi)) (send (cat "share" xi xi))))+  (label 11)+  (parent 7)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xr xr) hint))+  (deflistener (cat "key" (hash "share" xr xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr xr) hint))+    (hash "key" (hash "share" xr xr) hint) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (hash "key" (hash "share" xr xr) hint))+      (send (hash "key" (hash "share" xr xr) hint)))+    ((recv (cat "key" (hash "share" xr xr) hint))+      (send (cat "key" (hash "share" xr xr) hint))))+  (label 12)+  (parent 8)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (hash "public" xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))))+  (label 13)+  (parent 9)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0)))))+  (label 14)+  (parent 9)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener (hash "key" (hash "share" xi xr) hint))+  (deflistener (cat "key" (hash "share" xi xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr) hint))+    (hash "key" (hash "share" xi xr) hint) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b))))+    ((recv (hash "key" (hash "share" xi xr) hint))+      (send (hash "key" (hash "share" xi xr) hint)))+    ((recv (cat "key" (hash "share" xi xr) hint))+      (send (cat "key" (hash "share" xi xr) hint))))+  (label 15)+  (parent 10)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xr xr) hint))+  (deflistener (cat "key" (hash "share" xr xr) hint))+  (deflistener (cat "share" xr xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test (added-listener (cat "share" xr xr))+    (hash "share" xr xr) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (hash "key" (hash "share" xr xr) hint))+      (send (hash "key" (hash "share" xr xr) hint)))+    ((recv (cat "key" (hash "share" xr xr) hint))+      (send (cat "key" (hash "share" xr xr) hint)))+    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))+  (label 16)+  (parent 12)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (hash "public" xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))))+  (label 17)+  (parent 13)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint (hash "hint" (hash "share" xr xi))))))+  (origs))++(defskeleton nhca+  (vars (n text) (a ca a-0 b name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a-0) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))+      (send (enc (hash "public" xi) a-0 (privk ca)))))+  (label 18)+  (parent 13)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 19)+  (parent 14)+  (seen 17)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca+  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))+      (send (enc (hash "public" xi) a-0 (privk ca-0)))))+  (label 20)+  (parent 14)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener (hash "key" (hash "share" xi xr) hint))+  (deflistener (cat "key" (hash "share" xi xr) hint))+  (deflistener (cat "share" xi xr))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test (added-listener (cat "share" xi xr))+    (hash "share" xi xr) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b))))+    ((recv (hash "key" (hash "share" xi xr) hint))+      (send (hash "key" (hash "share" xi xr) hint)))+    ((recv (cat "key" (hash "share" xi xr) hint))+      (send (cat "key" (hash "share" xi xr) hint)))+    ((recv (cat "share" xi xr)) (send (cat "share" xi xr))))+  (label 21)+  (parent 15)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (a ca b name) (xr xr-0 rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 22)+  (parent 18)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint (hash "hint" (hash "share" xr xr-0))))))+  (origs))++(defskeleton nhca+  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0)))))+  (label 23)+  (parent 20)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint (hash "hint" (hash "share" xr xr-0))))))+  (origs))++(comment "Nothing left to do")++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))+      (send (enc (hash "public" x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr rndx) (xi expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi)))))))+  (label 24)+  (unrealized (0 1) (0 2) (0 4))+  (origs (n (0 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xi expt) (xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 25)+  (parent 24)+  (unrealized (0 2) (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (hash "public" x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 26)+  (parent 25)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr rndx) (x expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr x))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr x))+            (hash "key" (hash "share" xr x)+              (hash "hint" (hash "share" xr x))))+          (enc n (hash "hint" (hash "share" xr x))+            (hash "key" (hash "share" x xr)+              (hash "hint" (hash "share" xr x))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr x)+            (hash "hint" (hash "share" xr x))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" x) a (privk a)))+      (send (enc (hash "public" x) a (privk ca)))))+  (label 27)+  (parent 25)+  (unrealized (0 4) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (enc "check" n+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 28)+  (parent 26)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 29)+  (parent 27)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))))+  (label 30)+  (parent 27)+  (unrealized (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))+    (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 31)+  (parent 28)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (enc "check" n+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 32)+  (parent 29)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 3 4 init 5)+    (enc "check" n+      (hash "key" (hash "share" xr xi)+        (hash "hint" (hash "share" xr xi)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))))))+  (label 33)+  (parent 30)+  (unrealized (3 1) (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr xr-0)+        (hash "hint" (hash "share" xr xr-0))))+    (enc "check" n+      (hash "key" (hash "share" xr xr-0)+        (hash "hint" (hash "share" xr xr-0)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (hash "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0))))))+  (label 34)+  (parent 30)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (deflistener (cat "share" xr xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr xr))+    (hash "share" xr xr) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))+  (label 35)+  (parent 31)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))+    (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 36)+  (parent 32)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a b-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (hash "public" xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))))))+  (label 37)+  (parent 33)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0)))))+  (label 38)+  (parent 33)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (deflistener+    (cat "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr xr-0)+        (hash "hint" (hash "share" xr xr-0))))+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (hash "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0)))))+    ((recv+       (cat "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (cat "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0))))))+  (label 39)+  (parent 34)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (deflistener (cat "share" xr xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr xr))+    (hash "share" xr xr) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n (hash "hint" (hash "share" xr xr))+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))+  (label 40)+  (parent 36)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (hash "public" xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))))))+  (label 41)+  (parent 37)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca+  (vars (n text) (b ca a b-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))+      (send (enc (hash "public" xr) b-0 (privk ca)))))+  (label 42)+  (parent 37)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 43)+  (parent 38)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca+  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))+      (send (enc (hash "public" xr) b-0 (privk ca-0)))))+  (label 44)+  (parent 38)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (deflistener+    (cat "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (deflistener (cat "share" xr xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr xr-0))+    (hash "share" xr xr-0) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (hash "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0)))))+    ((recv+       (cat "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (cat "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0)))))+    ((recv (cat "share" xr xr-0)) (send (cat "share" xr xr-0))))+  (label 45)+  (parent 39)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 46)+  (parent 42)+  (seen 41)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca+  (vars (n text) (b ca a ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0)))))+  (label 47)+  (parent 44)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(comment "Nothing left to do")++(defprotocol nhca diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))+      (send (enc (hash "public" x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0)))))))+  (label 48)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (preskeleton)+  (origs (n (1 3)))+  (comment "Not a skeleton"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (precedes ((1 3) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0)))))))+  (label 49)+  (parent 48)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (origs (n (1 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr-0) b (privk ca)) (1 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 50)+  (parent 49)+  (unrealized (0 1) (0 3) (1 2) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 3 2 ca 2)+    (enc (hash "public" x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 51)+  (parent 50)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 x))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 x))+            (hash "key" (hash "share" xr-0 x)+              (hash "hint" (hash "share" xr-0 x))))+          (enc n (hash "hint" (hash "share" xr-0 x))+            (hash "key" (hash "share" x xr-0)+              (hash "hint" (hash "share" xr-0 x))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 x)+            (hash "hint" (hash "share" xr-0 x))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" x) a (privk a)))+      (send (enc (hash "public" x) a (privk ca)))))+  (label 52)+  (parent 50)+  (unrealized (0 1) (0 3) (1 4) (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 53)+  (parent 51)+  (unrealized (0 1) (0 3) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 resp 1)+    (enc "reg" (hash "public" xr-2) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca)))))+  (label 54)+  (parent 52)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 resp 1)+    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 55)+  (parent 52)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))))+  (label 56)+  (parent 52)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 57)+  (parent 53)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 init 5)+    (enc "check" n+      (hash "key" (hash "share" xr-0 xi)+        (hash "hint" (hash "share" xr-0 xi)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 58)+  (parent 54)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 59)+  (parent 54)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 60)+  (parent 55)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 5 init 5)+    (enc "check" n+      (hash "key" (hash "share" xr-0 xi-0)+        (hash "hint" (hash "share" xr-0 xi-0)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))))+  (label 61)+  (parent 56)+  (unrealized (0 1) (0 3) (4 1) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 62)+  (parent 56)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 63)+  (parent 57)+  (unrealized (0 1) (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 3 ca 2)+    (enc (hash "public" xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 64)+  (parent 58)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 65)+  (parent 58)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 66)+  (parent 59)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 67)+  (parent 60)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 3 ca 2)+    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))))+  (label 68)+  (parent 61)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0)))))+  (label 69)+  (parent 61)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 70)+  (parent 62)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener (cat "share" xr-0 xr-1))+  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))+    (hash "share" xr-0 xr-1) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))+  (label 71)+  (parent 66)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n (hash "hint" (hash "share" xr-0 xr-0))+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 72)+  (parent 67)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 2 ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))))+  (label 73)+  (parent 68)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))+      (send (enc (hash "public" xr-0) b-0 (privk ca)))))+  (label 74)+  (parent 68)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 75)+  (parent 69)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca-0))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))+      (send (enc (hash "public" xr-0) b-0 (privk ca-0)))))+  (label 76)+  (parent 69)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener (cat "share" xr-0 xr-1))+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))+    ((6 1) (5 0)) ((7 1) (6 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))+    (hash "share" xr-0 xr-1) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n (hash "hint" (hash "share" xr-0 xr-1))+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))+  (label 77)+  (parent 70)+  (unrealized (0 1) (0 3) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 78)+  (parent 73)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 1 resp 1)+    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 79)+  (parent 74)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 80)+  (parent 75)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr-0 xi-0))+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca-0)))))+  (label 81)+  (parent 76)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 82)+  (parent 78)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 83)+  (parent 78)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 5 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 84)+  (parent 78)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 85)+  (parent 78)+  (unrealized (0 3) (6 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 86)+  (parent 79)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 87)+  (parent 80)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 88)+  (parent 80)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 89)+  (parent 80)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 90)+  (parent 80)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr-0 xi))+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 91)+  (parent 81)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 92)+  (parent 82)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 93)+  (parent 83)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 94)+  (parent 84)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 95)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 96)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 97)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 98)+  (parent 85)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 99)+  (parent 86)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 100)+  (parent 86)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 101)+  (parent 86)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 102)+  (parent 86)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 103)+  (parent 87)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 104)+  (parent 88)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 105)+  (parent 89)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 106)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 107)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 108)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 109)+  (parent 90)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 110)+  (parent 91)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 111)+  (parent 91)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 7 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 112)+  (parent 91)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)+    (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 113)+  (parent 91)+  (unrealized (0 3) (8 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 114)+  (parent 92)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 115)+  (parent 93)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 116)+  (parent 94)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 117)+  (parent 95)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 118)+  (parent 96)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 119)+  (parent 97)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 120)+  (parent 98)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 121)+  (parent 99)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 122)+  (parent 100)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 123)+  (parent 101)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 124)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 125)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 126)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 127)+  (parent 102)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 128)+  (parent 103)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 129)+  (parent 104)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 130)+  (parent 105)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 131)+  (parent 106)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 132)+  (parent 107)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 133)+  (parent 108)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 134)+  (parent 109)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 135)+  (parent 110)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 136)+  (parent 111)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 137)+  (parent 112)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 138)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 9 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 139)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 140)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 141)+  (parent 113)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 142)+  (parent 114)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 143)+  (parent 115)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 144)+  (parent 116)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 145)+  (parent 117)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 146)+  (parent 118)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 147)+  (parent 119)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 148)+  (parent 120)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 149)+  (parent 121)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 150)+  (parent 122)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 151)+  (parent 123)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 152)+  (parent 124)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 153)+  (parent 125)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 154)+  (parent 126)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))+    ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 155)+  (parent 127)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 156)+  (parent 128)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 157)+  (parent 129)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 158)+  (parent 130)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 159)+  (parent 131)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 160)+  (parent 132)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 161)+  (parent 133)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 162)+  (parent 134)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 163)+  (parent 135)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 164)+  (parent 136)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 165)+  (parent 137)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 166)+  (parent 138)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 167)+  (parent 139)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 168)+  (parent 140)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (10 0)) ((10 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 169)+  (parent 141)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 170)+  (parent 145)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 171)+  (parent 146)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 172)+  (parent 147)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 173)+  (parent 148)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 174)+  (parent 149)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 175)+  (parent 150)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 176)+  (parent 151)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 177)+  (parent 152)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 178)+  (parent 153)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 179)+  (parent 154)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 180)+  (parent 155)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 181)+  (parent 159)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 182)+  (parent 160)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 183)+  (parent 161)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))+    ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 184)+  (parent 162)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 185)+  (parent 163)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi-0))+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 186)+  (parent 164)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 187)+  (parent 165)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 188)+  (parent 166)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 189)+  (parent 167)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 190)+  (parent 168)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 191)+  (parent 169)+  (unrealized (0 3) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 192)+  (parent 177)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 193)+  (parent 178)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 194)+  (parent 179)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 195)+  (parent 180)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 196)+  (parent 188)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 197)+  (parent 189)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xr-0))+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 198)+  (parent 190)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (11 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n (hash "hint" (hash "share" xr xi))+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 199)+  (parent 191)+  (unrealized (0 3) (12 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))+      (send (enc (hash "public" x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (comment Full initiator POV No need to make extra assumptions)+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint))))))+  (label 200)+  (unrealized (0 1) (0 3))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 201)+  (parent 200)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 202)+  (parent 201)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr x))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n (hash "key" (hash "share" xi x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi x) hint))+          (enc "check" n (hash "key" (hash "share" x xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 203)+  (parent 201)+  (unrealized (0 3) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi) hint))+    (enc n (hash "key" (hash "share" xi xi) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi) hint))+      (send (hash "key" (hash "share" xi xi) hint))))+  (label 204)+  (parent 202)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca)))))+  (label 205)+  (parent 203)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr) b (privk b)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))))+  (label 206)+  (parent 203)+  (unrealized (0 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi) hint))+  (deflistener (cat "key" (hash "share" xi xi) hint))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi) hint))+    (hash "key" (hash "share" xi xi) hint) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi) hint))+      (send (hash "key" (hash "share" xi xi) hint)))+    ((recv (cat "key" (hash "share" xi xi) hint))+      (send (cat "key" (hash "share" xi xi) hint))))+  (label 207)+  (parent 204)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xr xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr xr) hint))+    (enc n (hash "key" (hash "share" xr xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (hash "key" (hash "share" xr xr) hint))+      (send (hash "key" (hash "share" xr xr) hint))))+  (label 208)+  (parent 205)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 3 4 resp 4)+    (enc n+      (hash "key" (hash "share" xi xr)+        (hash "hint" (hash "share" xr xi)))) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))))+  (label 209)+  (parent 206)+  (unrealized (3 1) (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener (hash "key" (hash "share" xi xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr) hint))+    (enc n (hash "key" (hash "share" xi xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b))))+    ((recv (hash "key" (hash "share" xi xr) hint))+      (send (hash "key" (hash "share" xi xr) hint))))+  (label 210)+  (parent 206)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xi rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi) hint))+  (deflistener (cat "key" (hash "share" xi xi) hint))+  (deflistener (cat "share" xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xi)+  (operation encryption-test (added-listener (cat "share" xi xi))+    (hash "share" xi xi) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi) hint+          (enc (hash "public" xi) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))+          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi) hint))+      (send (hash "key" (hash "share" xi xi) hint)))+    ((recv (cat "key" (hash "share" xi xi) hint))+      (send (cat "key" (hash "share" xi xi) hint)))+    ((recv (cat "share" xi xi)) (send (cat "share" xi xi))))+  (label 211)+  (parent 207)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xr xr) hint))+  (deflistener (cat "key" (hash "share" xr xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr xr) hint))+    (hash "key" (hash "share" xr xr) hint) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (hash "key" (hash "share" xr xr) hint))+      (send (hash "key" (hash "share" xr xr) hint)))+    ((recv (cat "key" (hash "share" xr xr) hint))+      (send (cat "key" (hash "share" xr xr) hint))))+  (label 212)+  (parent 208)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xi xr)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (hash "public" xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))))+  (label 213)+  (parent 209)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xi xr)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0)))))+  (label 214)+  (parent 209)+  (unrealized (3 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener (hash "key" (hash "share" xi xr) hint))+  (deflistener (cat "key" (hash "share" xi xr) hint))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr) hint))+    (hash "key" (hash "share" xi xr) hint) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b))))+    ((recv (hash "key" (hash "share" xi xr) hint))+      (send (hash "key" (hash "share" xi xr) hint)))+    ((recv (cat "key" (hash "share" xi xr) hint))+      (send (cat "key" (hash "share" xi xr) hint))))+  (label 215)+  (parent 210)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a ca name) (xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xr xr) hint))+  (deflistener (cat "key" (hash "share" xr xr) hint))+  (deflistener (cat "share" xr xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk a) (privk ca))+  (uniq-gen xr)+  (operation encryption-test (added-listener (cat "share" xr xr))+    (hash "share" xr xr) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (send+        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) a (privk ca))+          (enc n (hash "key" (hash "share" xr xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (hash "key" (hash "share" xr xr) hint))+      (send (hash "key" (hash "share" xr xr) hint)))+    ((recv (cat "key" (hash "share" xr xr) hint))+      (send (cat "key" (hash "share" xr xr) hint)))+    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))+  (label 216)+  (parent 212)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (hash "public" xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))))+  (label 217)+  (parent 213)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint (hash "hint" (hash "share" xr xi))))))+  (origs))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a-0) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a-0 (privk ca)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))+      (send (enc (hash "public" xi) a-0 (privk ca)))))+  (label 218)+  (parent 213)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca b name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xi)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 219)+  (parent 214)+  (seen 217)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))+  (uniq-gen xr xi)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xi)+          (enc (hash "public" xi) a-0 (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))+      (send (enc (hash "public" xi) a-0 (privk ca-0)))))+  (label 220)+  (parent 214)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 1 (b b) (xr xr))+  (deflistener (hash "key" (hash "share" xi xr) hint))+  (deflistener (cat "key" (hash "share" xi xr) hint))+  (deflistener (cat "share" xi xr))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (operation encryption-test (added-listener (cat "share" xi xr))+    (hash "share" xi xr) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b))))+    ((recv (hash "key" (hash "share" xi xr) hint))+      (send (hash "key" (hash "share" xi xr) hint)))+    ((recv (cat "key" (hash "share" xi xr) hint))+      (send (cat "key" (hash "share" xi xr) hint)))+    ((recv (cat "share" xi xr)) (send (cat "share" xi xr))))+  (label 221)+  (parent 215)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (a ca b name) (xr xr-0 rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))+    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 222)+  (parent 218)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint (hash "hint" (hash "share" xr xr-0))))))+  (origs))++(defskeleton nhca-nohint+  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b b) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))+    ((5 1) (3 2)))+  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))+  (uniq-gen xr xr-0)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca-0)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0)))))+  (label 223)+  (parent 220)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)+        (hint (hash "hint" (hash "share" xr xr-0))))))+  (origs))++(comment "Nothing left to do")++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))+      (send (enc (hash "public" x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr rndx) (xi expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (comment Full responder point of view with freshly chosen n)+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi)))))))+  (label 224)+  (unrealized (0 1) (0 2) (0 4))+  (origs (n (0 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xi expt) (xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 225)+  (parent 224)+  (unrealized (0 2) (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 2 1 ca 2)+    (enc (hash "public" x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 226)+  (parent 225)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr rndx) (x expt))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) a (privk ca)) (0 2))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr x))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr x)+              (hash "hint" (hash "share" xr x))))+          (enc n+            (hash "key" (hash "share" x xr)+              (hash "hint" (hash "share" xr x))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr x)+            (hash "hint" (hash "share" xr x))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" x) a (privk a)))+      (send (enc (hash "public" x) a (privk ca)))))+  (label 227)+  (parent 225)+  (unrealized (0 4) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (enc "check" n+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 228)+  (parent 226)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (displaced 3 0 resp 1)+    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 229)+  (parent 227)+  (unrealized (0 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))))+  (label 230)+  (parent 227)+  (unrealized (0 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))+    (2 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 231)+  (parent 228)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (enc "check" n+      (hash "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 232)+  (parent 229)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 3 4 init 5)+    (enc "check" n+      (hash "key" (hash "share" xr xi)+        (hash "hint" (hash "share" xr xi)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))))))+  (label 233)+  (parent 230)+  (unrealized (3 1) (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr xr-0)+        (hash "hint" (hash "share" xr xr-0))))+    (enc "check" n+      (hash "key" (hash "share" xr xr-0)+        (hash "hint" (hash "share" xr xr-0)))) (0 4))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (hash "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0))))))+  (label 234)+  (parent 230)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (deflistener (cat "share" xr xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))+    ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr xr))+    (hash "share" xr xr) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))+  (label 235)+  (parent 231)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr xr)+        (hash "hint" (hash "share" xr xr))))+    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))+    (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr))))))+  (label 236)+  (parent 232)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 2 ca 2)+    (enc (hash "public" xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))))))+  (label 237)+  (parent 233)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a (privk ca-0)) (3 1))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0)))))+  (label 238)+  (parent 233)+  (unrealized (3 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (deflistener+    (cat "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr xr-0)+        (hash "hint" (hash "share" xr xr-0))))+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (hash "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0)))))+    ((recv+       (cat "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (cat "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0))))))+  (label 239)+  (parent 234)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca name) (xr rndx))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener+    (hash "key" (hash "share" xr xr)+      (hash "hint" (hash "share" xr xr))))+  (deflistener+    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))+  (deflistener (cat "share" xr xr))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr xr))+    (hash "share" xr xr) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))+          (enc n+            (hash "key" (hash "share" xr xr)+              (hash "hint" (hash "share" xr xr))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr)+            (hash "hint" (hash "share" xr xr))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (hash "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv+       (cat "key" (hash "share" xr xr)+         (hash "hint" (hash "share" xr xr))))+      (send+        (cat "key" (hash "share" xr xr)+          (hash "hint" (hash "share" xr xr)))))+    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))+  (label 240)+  (parent 236)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 ca 2)+    (enc (hash "public" xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))))))+  (label 241)+  (parent 237)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b-0 (privk ca)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))+      (send (enc (hash "public" xr) b-0 (privk ca)))))+  (label 242)+  (parent 237)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 1 ca 2)+    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 243)+  (parent 238)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(defskeleton nhca-nohint+  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))+      (send (enc (hash "public" xr) b-0 (privk ca-0)))))+  (label 244)+  (parent 238)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xr-0 rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand resp 1 (b a) (xr xr-0))+  (deflistener+    (hash "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (deflistener+    (cat "key" (hash "share" xr xr-0)+      (hash "hint" (hash "share" xr xr-0))))+  (deflistener (cat "share" xr xr-0))+  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))+    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr xr-0))+    (hash "share" xr xr-0) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (hash "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0)))))+    ((recv+       (cat "key" (hash "share" xr xr-0)+         (hash "hint" (hash "share" xr xr-0))))+      (send+        (cat "key" (hash "share" xr xr-0)+          (hash "hint" (hash "share" xr xr-0)))))+    ((recv (cat "share" xr xr-0)) (send (cat "share" xr xr-0))))+  (label 245)+  (parent 239)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))+    ((4 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 5 0 resp 1)+    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 246)+  (parent 242)+  (seen 241)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (b ca a ca-0 name) (xi xr rndx))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))+    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))+    ((4 1) (3 1)) ((5 1) (3 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 0 resp 1)+    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0)))))+  (label 247)+  (parent 244)+  (unrealized)+  (shape)+  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))+  (origs (n (0 3))))++(comment "Nothing left to do")++(defprotocol nhca-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))+    (trace (send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    (non-orig (privk a) (privk ca))+    (uniq-gen xi))+  (defrole resp+    (vars (xr rndx) (xi expt) (a b ca name) (n text))+    (trace (send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    (non-orig (privk b) (privk ca))+    (uniq-gen xr))+  (defrole ca+    (vars (subject ca name) (x expt))+    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))+      (send (enc (hash "public" x) subject (privk ca))))+    (non-orig (privk subject)))+  (comment A diffie-hellman exchange which uses a certificate authority+    to certify lonh-term NH values))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0)))))))+  (label 248)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (preskeleton)+  (origs (n (1 3)))+  (comment "Not a skeleton"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)+    (xr-0 xi-0 expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))+  (precedes ((1 3) (0 3)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (comment point of view in which init and resp each complete and they+    agree on the relevant parameters)+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0)))))))+  (label 249)+  (parent 248)+  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))+  (origs (n (1 3)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr-0) b (privk ca)) (1 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 250)+  (parent 249)+  (unrealized (0 1) (0 3) (1 2) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 3 2 ca 2)+    (enc (hash "public" x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 251)+  (parent 250)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x x))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) a (privk ca)) (1 2))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 x))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 x)+              (hash "hint" (hash "share" xr-0 x))))+          (enc n+            (hash "key" (hash "share" x xr-0)+              (hash "hint" (hash "share" xr-0 x))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 x)+            (hash "hint" (hash "share" xr-0 x))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" x) a (privk a)))+      (send (enc (hash "public" x) a (privk ca)))))+  (label 252)+  (parent 250)+  (unrealized (0 1) (0 3) (1 4) (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 253)+  (parent 251)+  (unrealized (0 1) (0 3) (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 resp 1)+    (enc "reg" (hash "public" xr-2) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca)))))+  (label 254)+  (parent 252)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 1 resp 1)+    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 255)+  (parent 252)+  (unrealized (0 1) (0 3) (1 4))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))))+  (label 256)+  (parent 252)+  (unrealized (0 1) (0 3) (1 4))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))) (3 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 257)+  (parent 253)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xi xr rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr)+  (uniq-orig n)+  (operation encryption-test (displaced 4 0 init 5)+    (enc "check" n+      (hash "key" (hash "share" xr-0 xi)+        (hash "hint" (hash "share" xr-0 xi)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 258)+  (parent 254)+  (unrealized (0 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 259)+  (parent 254)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 260)+  (parent 255)+  (unrealized (0 1) (0 3) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 4 5 init 5)+    (enc "check" n+      (hash "key" (hash "share" xr-0 xi-0)+        (hash "hint" (hash "share" xr-0 xi-0)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))))+  (label 261)+  (parent 256)+  (unrealized (0 1) (0 3) (4 1) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (enc "check" n+      (hash "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 262)+  (parent 256)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 263)+  (parent 257)+  (unrealized (0 1) (0 3) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (displaced 4 3 ca 2)+    (enc (hash "public" xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 264)+  (parent 258)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca-nohint+  (vars (n text) (a b ca name) (xr xi rndx))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr xi)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 265)+  (parent 258)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)+        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))+  (origs (n (1 3))))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 266)+  (parent 259)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-0)+        (hash "hint" (hash "share" xr-0 xr-0))))+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))) (4 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0))))))+  (label 267)+  (parent 260)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 3 ca 2)+    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))))+  (label 268)+  (parent 261)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0)))))+  (label 269)+  (parent 261)+  (unrealized (0 1) (0 3) (4 3))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))+    ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" xr-0 xr-1)+        (hash "hint" (hash "share" xr-0 xr-1))))+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1))))))+  (label 270)+  (parent 262)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener (cat "share" xr-0 xr-1))+  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))+    (hash "share" xr-0 xr-1) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xr-1) a (privk a)))+      (recv (enc (hash "public" xr-1) a (privk ca)))+      (send+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xr-1 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))+  (label 271)+  (parent 266)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)+    (xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-0)+      (hash "hint" (hash "share" xr-0 xr-0))))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (non-orig (privk b) (privk ca))+  (uniq-gen xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) b (privk b)))+      (recv (enc (hash "public" xi) b (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) b (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr-0)+              (hash "hint" (hash "share" xr-0 xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-0)+            (hash "hint" (hash "share" xr-0 xr-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (hash "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-0)+         (hash "hint" (hash "share" xr-0 xr-0))))+      (send+        (cat "key" (hash "share" xr-0 xr-0)+          (hash "hint" (hash "share" xr-0 xr-0)))))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 272)+  (parent 267)+  (unrealized (0 1) (0 3) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 5 2 ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))))+  (label 273)+  (parent 268)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))+      (send (enc (hash "public" xr-0) b-0 (privk ca)))))+  (label 274)+  (parent 268)+  (unrealized (0 1) (0 3) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 275)+  (parent 269)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b-0 (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))+      (send (enc (hash "public" xr-0) b-0 (privk ca-0)))))+  (label 276)+  (parent 269)+  (unrealized (0 1) (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)+    (xr-0 xr-1 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-1))+  (defstrand resp 1 (b a) (xr xr-1))+  (deflistener+    (hash "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener+    (cat "key" (hash "share" xr-0 xr-1)+      (hash "hint" (hash "share" xr-0 xr-1))))+  (deflistener (cat "share" xr-0 xr-1))+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))+    ((6 1) (5 0)) ((7 1) (6 0)))+  (non-orig (privk a) (privk b) (privk ca))+  (uniq-gen xi xr-0 xr-1)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))+    (hash "share" xr-0 xr-1) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xr-1)+          (enc (hash "public" xr-1) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr-1)+              (hash "hint" (hash "share" xr-0 xr-1))))+          (enc n+            (hash "key" (hash "share" xr-1 xr-0)+              (hash "hint" (hash "share" xr-0 xr-1))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xr-1)+            (hash "hint" (hash "share" xr-0 xr-1))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))+      (send (enc (hash "public" xr-1) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-1) a (privk a))))+    ((recv+       (hash "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (hash "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv+       (cat "key" (hash "share" xr-0 xr-1)+         (hash "hint" (hash "share" xr-0 xr-1))))+      (send+        (cat "key" (hash "share" xr-0 xr-1)+          (hash "hint" (hash "share" xr-0 xr-1)))))+    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))+  (label 277)+  (parent 270)+  (unrealized (0 1) (0 3) (7 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 278)+  (parent 273)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 1 resp 1)+    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (5 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca)))))+  (label 279)+  (parent 274)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 280)+  (parent 275)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)+    (xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)+    (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi-0)+            (hash "hint" (hash "share" xr-0 xi-0))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))+          (enc (hash "public" xr-0) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr-0)+              (hash "hint" (hash "share" xr-0 xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi-0)+              (hash "hint" (hash "share" xr-0 xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca-0)))))+  (label 281)+  (parent 276)+  (unrealized (0 1) (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 6 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 282)+  (parent 278)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 283)+  (parent 278)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 6 5 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 284)+  (parent 278)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 285)+  (parent 278)+  (unrealized (0 3) (6 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 286)+  (parent 279)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 287)+  (parent 280)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 288)+  (parent 280)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 289)+  (parent 280)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 290)+  (parent 280)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)+    (xi xr-0 xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr-0 xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" xi-0) a (privk ca)) (0 1))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))+      (recv (enc (hash "public" xr-0) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr-0 xi)+            (hash "hint" (hash "share" xr-0 xi))))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))+          (enc (hash "public" xr-0) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr-0)+              (hash "hint" (hash "share" xr-0 xi))))+          (enc "check" n+            (hash "key" (hash "share" xr-0 xi)+              (hash "hint" (hash "share" xr-0 xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 291)+  (parent 281)+  (unrealized (0 3))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 292)+  (parent 282)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 293)+  (parent 283)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 294)+  (parent 284)+  (unrealized (0 3) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 295)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 296)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 297)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 298)+  (parent 285)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 7 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 299)+  (parent 286)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 300)+  (parent 286)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 7 6 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 301)+  (parent 286)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 302)+  (parent 286)+  (unrealized (0 3) (7 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 303)+  (parent 287)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 304)+  (parent 288)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 305)+  (parent 289)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 306)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 307)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 308)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 309)+  (parent 290)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 2 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 310)+  (parent 291)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 3 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca)))))+  (label 311)+  (parent 291)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 7 ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca)))))+  (label 312)+  (parent 291)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)+    (x expt))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr x))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x x))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-strand ca 2)+    (enc (hash "public" x) b (privk ca)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 x) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))+          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" x) b (privk b)))+      (send (enc (hash "public" x) b (privk ca)))))+  (label 313)+  (parent 291)+  (unrealized (0 3) (8 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 314)+  (parent 292)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 315)+  (parent 293)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (6 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 316)+  (parent 294)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 317)+  (parent 295)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 318)+  (parent 296)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 319)+  (parent 297)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 320)+  (parent 298)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 321)+  (parent 299)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 322)+  (parent 300)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 323)+  (parent 301)+  (unrealized (0 3) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 324)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 8 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 325)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 8 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 326)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 327)+  (parent 302)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 328)+  (parent 303)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 329)+  (parent 304)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 330)+  (parent 305)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 331)+  (parent 306)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 332)+  (parent 307)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 333)+  (parent 308)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 334)+  (parent 309)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 335)+  (parent 310)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xi-0) hint))+    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint))))+  (label 336)+  (parent 311)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint))))+  (label 337)+  (parent 312)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 0 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 338)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (displaced 9 1 resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca)))))+  (label 339)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (displaced 9 4 resp 1)+    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca)))))+  (label 340)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))+    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-strand resp 1)+    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))+  (label 341)+  (parent 313)+  (unrealized (0 3))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 342)+  (parent 314)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 343)+  (parent 315)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 1) (6 0)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 344)+  (parent 316)+  (unrealized (0 3) (8 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 345)+  (parent 317)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 346)+  (parent 318)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 347)+  (parent 319)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 348)+  (parent 320)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 349)+  (parent 321)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 350)+  (parent 322)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 351)+  (parent 323)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 352)+  (parent 324)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 353)+  (parent 325)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 354)+  (parent 326)+  (unrealized (0 3) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))+    ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 355)+  (parent 327)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 356)+  (parent 328)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 357)+  (parent 329)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 358)+  (parent 330)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 359)+  (parent 331)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 360)+  (parent 332)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 361)+  (parent 333)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 362)+  (parent 334)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 363)+  (parent 335)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xi-0) hint))+    (hash "key" (hash "share" xi xi-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint))))+  (label 364)+  (parent 336)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))+    (hash "key" (hash "share" xi-0 xi-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint))))+  (label 365)+  (parent 337)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint))))+  (label 366)+  (parent 338)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr) hint))+    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint))))+  (label 367)+  (parent 339)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi xr-0) hint))+    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint))))+  (label 368)+  (parent 340)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (10 0)) ((10 1) (0 3)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))+    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint))))+  (label 369)+  (parent 341)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))+    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 370)+  (parent 345)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 371)+  (parent 346)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 372)+  (parent 347)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))+    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))+    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 373)+  (parent 348)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 374)+  (parent 349)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 375)+  (parent 350)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 376)+  (parent 351)+  (unrealized (0 3) (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 377)+  (parent 352)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 378)+  (parent 353)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (8 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 379)+  (parent 354)+  (unrealized (0 3) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 380)+  (parent 355)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 381)+  (parent 359)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 382)+  (parent 360)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 383)+  (parent 361)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))+    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))+    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))+    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))+    ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 384)+  (parent 362)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 385)+  (parent 363)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (deflistener (hash "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "key" (hash "share" xi xi-0) hint))+  (deflistener (cat "share" xi xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xi-0))+    (hash "share" xi xi-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0))))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi-0)+            (hash "hint" (hash "share" xr xi-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca-0)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi-0 xr)+              (hash "hint" (hash "share" xr xi-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xi-0)+              (hash "hint" (hash "share" xr xi-0)))))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xi-0) hint))+      (send (hash "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "key" (hash "share" xi xi-0) hint))+      (send (cat "key" (hash "share" xi xi-0) hint)))+    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))+  (label 386)+  (parent 364)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)+    (xr xi-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))+  (deflistener (cat "share" xi-0 xi-0))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))+    ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))+    (hash "share" xi-0 xi-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xi-0) hint+          (enc (hash "public" xi-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))+          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))+      (send (hash "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))+      (send (cat "key" (hash "share" xi-0 xi-0) hint)))+    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))+  (label 387)+  (parent 365)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))+    (hash "key" (hash "share" xr-0 xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint))))+  (label 388)+  (parent 366)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr) hint))+    (hash "key" (hash "share" xi-0 xr) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint))))+  (label 389)+  (parent 367)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi xr-0) hint))+    (hash "key" (hash "share" xi xr-0) hint) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint))))+  (label 390)+  (parent 368)+  (unrealized (0 3) (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test+    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))+    (hash "key" (hash "share" xi-0 xr-0) hint) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint))))+  (label 391)+  (parent 369)+  (unrealized (0 3) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))+    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))+    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 392)+  (parent 377)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 393)+  (parent 378)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))+    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))+    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))+  (non-orig (privk ca) (privk a))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (9 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 394)+  (parent 379)+  (unrealized (0 3) (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca) (xi xi) (xr xr))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))+    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 395)+  (parent 380)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b a) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))+  (deflistener (cat "share" xr-0 xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))+    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))+    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))+    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))+    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))+    (hash "share" xr-0 xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))+      (send (hash "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))+      (send (cat "key" (hash "share" xr-0 xr-0) hint)))+    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))+  (label 396)+  (parent 388)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (deflistener (hash "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr) hint))+  (deflistener (cat "share" xi-0 xr))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))+    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xi-0 xr)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr))+    (hash "share" xi-0 xr) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr) hint+          (enc (hash "public" xr) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))+          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (hash "key" (hash "share" xi-0 xr) hint))+      (send (hash "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr) hint))+      (send (cat "key" (hash "share" xi-0 xr) hint)))+    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))+  (label 397)+  (parent 389)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))+  (defstrand ca 2 (subject a) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)+    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))+  (defstrand ca 2 (subject a) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand ca 2 (subject a) (ca ca) (x xr-0))+  (deflistener (hash "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "key" (hash "share" xi xr-0) hint))+  (deflistener (cat "share" xi xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))+    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))+    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))+  (non-orig (privk ca) (privk a) (privk ca-0))+  (uniq-gen xr xi xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi xr-0))+    (hash "share" xi xr-0) (10 0))+  (traces+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca)))+      (send+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) a (privk ca))+          (enc n (hash "key" (hash "share" xi xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))+    ((send (enc "reg" (hash "public" xr) a (privk a)))+      (recv (enc (hash "public" xr) a (privk ca)))+      (recv+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca))+          (enc n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0))))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xr-0)+            (hash "hint" (hash "share" xr xr-0))))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) a (privk a)))+      (recv (enc (hash "public" xr-0) a (privk ca-0)))+      (send+        (cat (hash "public" xr-0)+          (enc (hash "public" xr-0) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))+          (enc (hash "public" xr) a (privk ca-0))+          (enc n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xr-0 xr)+              (hash "hint" (hash "share" xr xr-0))))+          (enc "check" n+            (hash "key" (hash "share" xr xr-0)+              (hash "hint" (hash "share" xr xr-0)))))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) a (privk a)))+      (send (enc (hash "public" xr) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))+      (send (enc (hash "public" xr-0) a (privk ca))))+    ((recv (hash "key" (hash "share" xi xr-0) hint))+      (send (hash "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "key" (hash "share" xi xr-0) hint))+      (send (cat "key" (hash "share" xi xr-0) hint)))+    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))+  (label 398)+  (parent 390)+  (unrealized (0 3) (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhca-nohint+  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))+  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)+    (xr xr-0))+  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))+  (defstrand ca 2 (subject b) (ca ca) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi))+  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)+    (a a) (b b) (ca ca-0) (xi xi) (xr xr))+  (defstrand ca 2 (subject a) (ca ca-0) (x xi))+  (defstrand ca 2 (subject b) (ca ca-0) (x xr))+  (defstrand ca 2 (subject a) (ca ca) (x xi-0))+  (defstrand ca 2 (subject b) (ca ca) (x xr-0))+  (defstrand resp 1 (b b) (xr xr-0))+  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))+  (deflistener (cat "share" xi-0 xr-0))+  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))+    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))+    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))+    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))+    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))+  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))+  (uniq-gen xi xr xi-0 xr-0)+  (uniq-orig n)+  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))+    (hash "share" xi-0 xr-0) (11 0))+  (traces+    ((send (enc "reg" (hash "public" xi-0) a (privk a)))+      (recv (enc (hash "public" xi-0) a (privk ca)))+      (send+        (cat (hash "public" xi-0)+          (enc (hash "public" xi-0) a (privk ca))))+      (recv+        (cat (hash "public" xr-0) hint+          (enc (hash "public" xr-0) b (privk ca))+          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))+      (send+        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))+          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))+    ((send (enc "reg" (hash "public" xr) b (privk b)))+      (recv (enc (hash "public" xr) b (privk ca)))+      (recv+        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))+      (send+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca))+          (enc n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi))))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (recv+        (enc "check" n+          (hash "key" (hash "share" xr xi)+            (hash "hint" (hash "share" xr xi))))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca))))+    ((send (enc "reg" (hash "public" xi) a (privk a)))+      (recv (enc (hash "public" xi) a (privk ca-0)))+      (send+        (cat (hash "public" xi)+          (enc (hash "public" xi) a (privk ca-0))))+      (recv+        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))+          (enc (hash "public" xr) b (privk ca-0))+          (enc n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))))+      (send+        (cat+          (enc "check" n+            (hash "key" (hash "share" xi xr)+              (hash "hint" (hash "share" xr xi))))+          (enc "check" n+            (hash "key" (hash "share" xr xi)+              (hash "hint" (hash "share" xr xi)))))))+    ((recv (enc "reg" (hash "public" xi) a (privk a)))+      (send (enc (hash "public" xi) a (privk ca-0))))+    ((recv (enc "reg" (hash "public" xr) b (privk b)))+      (send (enc (hash "public" xr) b (privk ca-0))))+    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))+      (send (enc (hash "public" xi-0) a (privk ca))))+    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))+      (send (enc (hash "public" xr-0) b (privk ca))))+    ((send (enc "reg" (hash "public" xr-0) b (privk b))))+    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))+      (send (hash "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))+      (send (cat "key" (hash "share" xi-0 xr-0) hint)))+    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))+  (label 399)+  (parent 391)+  (unrealized (0 3) (12 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/nhcr_um.scm view
@@ -0,0 +1,184 @@+; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  We use+; function relation declarations to link names to long-term public+; values.++;;; This file contains the standard version, in which the two+;;; ephemeral are mixed, as are the two static exponents.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "NHCR: unified model (UM)" (bound 20) (limit 8000) (algebra diffie-hellman))++(defmacro (nh_public k1)+  ;(exp (gen) x1))+  (hash "public" k1))++(defmacro (nh_share k1 k2)+  ;(hash "share" (nh_public (mul x1 x2))))+  (hash "share" (nh_public k1) k2))++; Use this macro to generate the hint+(defmacro (nh_hint k1 k2)+  (hash "hint" (nh_share k1 k2)))++(defmacro (nh_key1 k1 k2 h)+  (hash "nh_key" (nh_share k1 k2) h))++(defmacro (nh_key2 k1 k2 h)+  (hash "nh_key" (nh_share k2 k1) h))++(defmacro (key_hint11 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key1 ltk1 ltk2 h1) (nh_key1 ek1 ek2 h2)))++(defmacro (key_hint12 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key1 ltk1 ltk2 h1) (nh_key2 ek1 ek2 h2)))++(defmacro (key_hint21 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key2 ltk1 ltk2 h1) (nh_key1 ek1 ek2 h2)))++(defmacro (key_hint22 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key2 ltk1 ltk2 h1) (nh_key2 ek1 ek2 h2)))++;(defmacro (key ltk1 ltk2 ek1 ek2)+;  (key_hint ltk1 ltk2 (nh_hint ltk1 ek2) ek1 ek2 (nh_hint ek1 ltk2)))++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data) (hint1 hint2 mesg))+    (trace+     (recv (cat (nh_public ltxa) (nh_public ltxb)))+     (send (cat na a b (nh_public x)))+     (recv (cat (nh_public y) hint1 hint2+                (enc na nb a b hint1 hint2+                     (key_hint22 ltxa ltxb x y hint1 hint2))))+     (send nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+           ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen x)+    (uniq-orig na)+    (neq ((exp (gen) y) (gen))))++  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace+     (recv (cat (nh_public ltxa) (nh_public ltxb)))+     (recv (cat na a b (nh_public x)))+     (send (cat (nh_public y) (nh_hint ltxa y) (nh_hint x ltxb)+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))))+     (recv nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+	   ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen y)+    (uniq-orig nb)+    (neq ((exp (gen) x) (gen))))++  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self (nh_public l)))+     (recv "end-of-protocol")+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))))++; Initiator point of view: partner's exponent secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (non-orig ltxb)+  (neq (a b)))++; Initiator point of view: both LTX exponents secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb) (neq (a b)))++; Responder point of view; both exponents secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb)+  (neq (a b)))++; Responder point of view; partner's exponent secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))
+ tst/nhcr_um.tst view
@@ -0,0 +1,8785 @@+(herald "NHCR: unified model (UM)" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.7")+(comment "All input read from tst/nhcr_um.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb)))))+  (label 0)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb y x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)) ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (origs (nb (2 2)) (na (0 1))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 2)+  (parent 0)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 3)+  (parent 2)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener (cat "nh_key" (hash "share" (hash "public" y) x) hint2))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) x) hint2))+    (hash "nh_key" (hash "share" (hash "public" y) x) hint2) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) x) hint2))+      (send (cat "nh_key" (hash "share" (hash "public" y) x) hint2))))+  (label 4)+  (parent 3)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener (cat "nh_key" (hash "share" (hash "public" y) x) hint2))+  (deflistener (cat "share" (hash "public" y) x))+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) x))+    (hash "share" (hash "public" y) x) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) x) hint2))+      (send (cat "nh_key" (hash "share" (hash "public" y) x) hint2)))+    ((recv (cat "share" (hash "public" y) x))+      (send (cat "share" (hash "public" y) x))))+  (label 5)+  (parent 4)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat self (hash "public" ltxa))))+    ((send (cat self-0 (hash "public" ltxb)))))+  (label 6)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb)))))+  (label 7)+  (parent 6)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb ltxa)+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (origs (nb (3 2)) (na (0 1))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 9)+  (parent 7)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 10)+  (parent 9)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (5 0)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 1) (0 2)) ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))+    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+    (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))))+  (label 11)+  (parent 10)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat self (hash "public" ltxa))))+    ((send (cat self-0 (hash "public" ltxb)))))+  (label 12)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb)))))+  (label 13)+  (parent 12)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))+  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxb ltxa)+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)))+  (label 14)+  (parent 13)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (3 1)) (nb (0 2))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 15)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 16)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 17)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 18)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 19)+  (parent 15)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 20)+  (parent 16)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 21)+  (parent 17)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 22)+  (parent 18)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 23)+  (parent 19)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 24)+  (parent 20)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 25)+  (parent 21)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 26)+  (parent 22)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat self (hash "public" ltxa)))))+  (label 27)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa)))))+  (label 28)+  (parent 27)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (nb (0 2))))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 29)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 30)+  (parent 29)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 31)+  (parent 30)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))+    ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 32)+  (parent 31)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) ltxb))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) ltxb))+    (hash "share" (hash "public" ltxa) ltxb) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) ltxb))+      (send (cat "share" (hash "public" ltxa) ltxb))))+  (label 33)+  (parent 32)+  (unrealized (0 2) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l))))+  (label 34)+  (parent 33)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) ltxb))+      (send (cat "share" (hash "public" ltxa) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 35)+  (parent 34)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (0 2)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 36)+  (parent 34)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))+    ((7 2) (8 0)) ((8 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) ltxb))+      (send (cat "share" (hash "public" ltxa) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 37)+  (parent 35)+  (unrealized (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 38)+  (parent 36)+  (unrealized (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) y))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))+    ((7 2) (9 0)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) y))+    (hash "share" (hash "public" x) y) (8 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) ltxb))+      (send (cat "share" (hash "public" ltxa) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) y))+      (send (cat "share" (hash "public" x) y))))+  (label 39)+  (parent 37)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((3 0) (0 0)) ((3 0) (9 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2))+    ((8 1) (7 0)) ((9 1) (8 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))+    (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1) (8 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))))+  (label 40)+  (parent 38)+  (unrealized (8 0) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))+  (deflistener (cat "share" (hash "public" l) ltxa))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (10 0)) ((3 0) (0 0)) ((3 0) (10 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2))+    ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (9 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" l) ltxa))+    (hash "share" (hash "public" l) ltxa) (9 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1)))+    ((recv (cat "share" (hash "public" l) ltxa))+      (send (cat "share" (hash "public" l) ltxa))))+  (label 41)+  (parent 40)+  (unrealized (8 0) (10 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 42)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 43)+  (parent 42)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 44)+  (parent 43)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))+    ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 45)+  (parent 44)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) ltxb))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) ltxb))+    (hash "share" (hash "public" ltxa) ltxb) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) ltxb))+      (send (cat "share" (hash "public" ltxa) ltxb))))+  (label 46)+  (parent 45)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l))))+  (label 47)+  (parent 46)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l))))+    (hash "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) l))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) l))))))+  (label 48)+  (parent 47)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) l)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) l)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" y) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) x))+    (hash "share" (hash "public" y) x) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) l)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) l)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) l)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) l)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) l))+      (send (cat "share" (hash "public" ltxa) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" y) x))+      (send (cat "share" (hash "public" y) x))))+  (label 49)+  (parent 48)+  (unrealized (0 2) (7 0) (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 50)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 51)+  (parent 50)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 52)+  (parent 51)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))+    ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 53)+  (parent 52)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) ltxa))+    (hash "share" (hash "public" ltxb) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa))+      (send (cat "share" (hash "public" ltxb) ltxa))))+  (label 54)+  (parent 53)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l))))+  (label 55)+  (parent 54)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 56)+  (parent 55)+  (unrealized (0 2) (7 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)+    (y expt) (l ltxa y-0 x ltxb rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y-0) (x x))+  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)))+  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))+  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))+    ("principal-of" (ltxa a-0) (ltxb b) (l a)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen l y-0 x ltxb)+  (uniq-orig na nb-0)+  (operation encryption-test (added-strand resp 3)+    (hash "hint" (hash "share" (hash "public" x) ltxb)) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 57)+  (parent 56)+  (unrealized (0 2))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "hint" (hash "share" (hash "public" x) ltxb)))+    (hash "hint" (hash "share" (hash "public" x) ltxb)) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))+      (send (cat "hint" (hash "share" (hash "public" x) ltxb)))))+  (label 58)+  (parent 56)+  (unrealized (0 2) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (b a name) (ltxb x ltxa y rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 2) (0 2)) ((8 2) (7 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x ltxa y)+  (uniq-orig na nb)+  (operation encryption-test (displaced 9 8 resp 3)+    (enc na-0 nb-0 a-0 b+      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+        (hash "nh_key" (hash "share" (hash "public" y-0) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa))+      (send (cat "share" (hash "public" ltxb) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 59)+  (parent 57)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb na-0 nb-0 data) (a b a-0 name)+    (ltxa y ltxb ltxa-0 y-0 x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa-0) (ltxb ltxb) (x x) (y y-0))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y-0)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa-0))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y-0)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa-0))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y-0)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y) (x x))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)+    (ltxb ltxb) (y y-0) (x x))+  (precedes ((0 1) (8 1)) ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0))+    ((3 0) (8 0)) ((3 0) (9 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 2) (0 2))+    ((9 2) (7 0)))+  (absent (y-0 ltxa-0) (y-0 ltxb) (y-0 x) (y ltxa) (y ltxb) (y x)+    (x ltxa-0) (x ltxb))+  (fn-of ("ltx-of" (a ltxa-0) (b ltxb) (a-0 ltxa))+    ("principal-of" (ltxa-0 a) (ltxb b) (ltxa a-0)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y-0) (gen)))+  (uniq-gen y ltxb ltxa-0 y-0 x)+  (uniq-orig na nb nb-0)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b+      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+        (hash "nh_key" (hash "share" (hash "public" y-0) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y-0)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y-0)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa-0))) (recv "end-of-protocol")+      (send ltxa-0))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y-0)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y-0)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+         (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa-0))+      (send (cat "share" (hash "public" ltxb) ltxa-0)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y-0)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y-0)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 60)+  (parent 57)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)+    (y expt) (l ltxa y-0 x ltxb rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y-0) (x x))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (8 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 2) (7 0)) ((9 1) (0 2)))+  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))+  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))+    ("principal-of" (ltxa a-0) (ltxb b) (l a)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen l y-0 x ltxb)+  (uniq-orig na nb-0)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 61)+  (parent 57)+  (unrealized (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (8 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))+      (send (cat "hint" (hash "share" (hash "public" x) ltxb))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 62)+  (parent 58)+  (unrealized (0 2) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (b a name) (ltxb x ltxa y rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat "share" (hash "public" x) y))+  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 2) (0 2)) ((8 2) (9 0)) ((9 1) (7 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x ltxa y)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) y))+    (hash "share" (hash "public" x) y) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa))+      (send (cat "share" (hash "public" ltxb) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv (cat "share" (hash "public" x) y))+      (send (cat "share" (hash "public" x) y))))+  (label 63)+  (parent 59)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb na-0 nb-0 data) (a b a-0 name)+    (ltxa y ltxb ltxa-0 y-0 x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa-0) (ltxb ltxb) (x x) (y y-0))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y-0)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa-0))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y-0)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa-0))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y-0)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y) (x x))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)+    (ltxb ltxb) (y y-0) (x x))+  (deflistener (cat "share" (hash "public" x) y-0))+  (precedes ((0 1) (8 1)) ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0))+    ((3 0) (8 0)) ((3 0) (9 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 2) (0 2))+    ((9 2) (10 0)) ((10 1) (7 0)))+  (absent (y-0 ltxa-0) (y-0 ltxb) (y-0 x) (y ltxa) (y ltxb) (y x)+    (x ltxa-0) (x ltxb))+  (fn-of ("ltx-of" (a ltxa-0) (b ltxb) (a-0 ltxa))+    ("principal-of" (ltxa-0 a) (ltxb b) (ltxa a-0)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y-0) (gen)))+  (uniq-gen y ltxb ltxa-0 y-0 x)+  (uniq-orig na nb nb-0)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) y-0))+    (hash "share" (hash "public" x) y-0) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y-0)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y-0)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa-0))) (recv "end-of-protocol")+      (send ltxa-0))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y-0)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y-0)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+         (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa-0))+      (send (cat "share" (hash "public" ltxb) ltxa-0)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y-0)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y-0)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)+                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv (cat "share" (hash "public" x) y-0))+      (send (cat "share" (hash "public" x) y-0))))+  (label 64)+  (parent 60)+  (unrealized (10 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)+    (y expt) (l ltxa y-0 x ltxb rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y-0) (x x))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (8 1)) ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 2) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)))+  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))+  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))+    ("principal-of" (ltxa a-0) (ltxb b) (l a)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen l y-0 x ltxb)+  (uniq-orig na nb-0)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (9 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 65)+  (parent 61)+  (unrealized (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" l-0) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))+  (deflistener (cat "share" (hash "public" x) l-0))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation nonce-test (displaced 10 3 ltx-gen 3) l-0 (9 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" l-0) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" l-0) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" l-0) l))+      (send (cat "share" (hash "public" l-0) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))+      (send (cat "hint" (hash "share" (hash "public" x) l-0))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0))))+  (label 66)+  (parent 62)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)+    (y expt) (l ltxa y-0 x ltxb rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y-0) (x x))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))+  (precedes ((0 1) (8 1)) ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (11 0)) ((2 2) (6 0)) ((3 0) (0 0))+    ((3 0) (8 0)) ((3 0) (11 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 1) (0 2))+    ((10 1) (9 0)) ((11 1) (10 0)))+  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))+  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))+    ("principal-of" (ltxa a-0) (ltxb b) (l a)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen l y-0 x ltxb)+  (uniq-orig na nb-0)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))+    (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1) (10 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))))+  (label 67)+  (parent 65)+  (unrealized (10 0) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (10 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (10 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (10 0))+    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa))+      (send (cat "share" (hash "public" ltxb) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))+      (send (cat "hint" (hash "share" (hash "public" x) ltxb))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 68)+  (parent 66)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" l-0) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (9 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (0 2)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" l-0) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" l-0) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" l-0) l))+      (send (cat "share" (hash "public" l-0) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))+      (send (cat "hint" (hash "share" (hash "public" x) l-0))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 69)+  (parent 66)+  (unrealized (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)+    (y expt) (l ltxa y-0 x ltxb rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)+    (ltxb ltxb) (y y-0) (x x))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (precedes ((0 1) (8 1)) ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1))+    ((2 0) (0 0)) ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0))+    ((3 0) (8 0)) ((3 0) (12 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 1) (0 2))+    ((10 1) (9 0)) ((11 1) (10 0)) ((12 1) (11 0)))+  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))+  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))+    ("principal-of" (ltxa a-0) (ltxb b) (l a)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen l y-0 x ltxb)+  (uniq-orig na nb-0)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) l))+    (hash "share" (hash "public" ltxb) l) (11 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na-0 a-0 b (hash "public" x)))+      (send+        (cat (hash "public" y-0)+          (hash "hint" (hash "share" (hash "public" ltxa) y-0))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" x) y-0)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na-0 nb-0 a-0 b+            (hash "hint" (hash "share" (hash "public" ltxa) y-0))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))+              (hash "nh_key" (hash "share" (hash "public" y-0) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1)))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l))))+  (label 70)+  (parent 67)+  (unrealized (10 0) (12 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener (cat "share" (hash "public" x) y))+  (precedes ((0 1) (10 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (10 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (10 0))+    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (0 2))+    ((10 2) (11 0)) ((11 1) (7 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb ltxa y x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) y))+    (hash "share" (hash "public" x) y) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa))+      (send (cat "share" (hash "public" ltxb) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))+      (send (cat "hint" (hash "share" (hash "public" x) ltxb))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv (cat "share" (hash "public" x) y))+      (send (cat "share" (hash "public" x) y))))+  (label 71)+  (parent 68)+  (unrealized (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" l-0) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (precedes ((0 1) (11 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (9 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (0 2)) ((11 1) (10 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (10 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" l-0) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" l-0) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" l-0) l))+      (send (cat "share" (hash "public" l-0) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))+      (send (cat "hint" (hash "share" (hash "public" x) l-0))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))+  (label 72)+  (parent 69)+  (unrealized (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" l-0) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))+  (precedes ((0 1) (11 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (12 0))+    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (0 2))+    ((11 1) (10 0)) ((12 1) (11 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))+    (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1) (11 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" l-0) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" l-0) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" l-0) l))+      (send (cat "share" (hash "public" l-0) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))+      (send (cat "hint" (hash "share" (hash "public" x) l-0))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))))+  (label 73)+  (parent 72)+  (unrealized (11 0) (12 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" l-0) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))+  (deflistener (cat "share" (hash "public" l-0) l))+  (precedes ((0 1) (11 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (13 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (13 0))+    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (0 2))+    ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" l-0) l))+    (hash "share" (hash "public" l-0) l) (12 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" l-0) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" l-0) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" l-0) l))+      (send (cat "share" (hash "public" l-0) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))+      (send (cat "hint" (hash "share" (hash "public" x) l-0))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1)))+    ((recv (cat "share" (hash "public" l-0) l))+      (send (cat "share" (hash "public" l-0) l))))+  (label 74)+  (parent 73)+  (unrealized (11 0) (13 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 75)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 76)+  (parent 75)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 77)+  (parent 76)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))+    ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 78)+  (parent 77)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxb) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) ltxa))+    (hash "share" (hash "public" ltxb) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxb) ltxa))+      (send (cat "share" (hash "public" ltxb) ltxa))))+  (label 79)+  (parent 78)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l))))+  (label 80)+  (parent 79)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 81)+  (parent 80)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxb) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" ltxb) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" y) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) x))+    (hash "share" (hash "public" y) x) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxb) l)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxb) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxb) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" ltxb) l))+      (send (cat "share" (hash "public" ltxb) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" y) x))+      (send (cat "share" (hash "public" y) x))))+  (label 82)+  (parent 81)+  (unrealized (0 2) (7 0) (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/nhcr_um3.scm view
@@ -0,0 +1,233 @@+; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral values.  We use+; function relation declarations to link names to long-term public+; values.++;;; This file contains the standard version, in which the two+;;; ephemeral are mixed, as are the two static long term values.++; A role is provided in which a party signs a fresh long-term+; value, and then leaks the exponent.  The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "NHCR: unified model (UM3) original" (bound 20) (limit 8000) (algebra diffie-hellman))++(defmacro (nh_public k1)+  ;(exp (gen) x1))+  (hash "public" k1))++(defmacro (nh_share k1 k2)+  ;(hash "share" (nh_public (mul x1 x2))))+  (hash "share" (nh_public k1) k2))++; Use this macro to generate the hint+(defmacro (nh_hint k1 k2)+  (hash "hint" (nh_share k1 k2)))++(defmacro (nh_key1 k1 k2 h)+  (hash "nh_key" (nh_share k1 k2) h))++(defmacro (nh_key2 k1 k2 h)+  (hash "nh_key" (nh_share k2 k1) h))++(defmacro (key_hint111 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))+(defmacro (key_hint112 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))+(defmacro (key_hint121 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))+(defmacro (key_hint122 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))+(defmacro (key_hint211 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))+(defmacro (key_hint212 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))+(defmacro (key_hint221 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))+(defmacro (key_hint222 ltk1 ltk2 ek1 ek2 h1 h2 h3)+  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data) (hint1 hint2 hint3 mesg))+    (trace+     (recv (cat (nh_public ltxa) (nh_public ltxb)))+     (send (cat na a b (nh_public x)))+     (recv (cat (nh_public y) hint1 hint2 hint3+                (enc na nb a b hint1 hint2 hint3+                     (key_hint222 ltxa ltxb x y hint1 hint2 hint3))))+     (send nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+           ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen x)+    (uniq-orig na)+    (neq ((exp (gen) y) (gen))))++  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace+     (recv (cat (nh_public ltxa) (nh_public ltxb)))+     (recv (cat na a b (nh_public x)))+     (send (cat (nh_public y) (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint111 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint112 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint121 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint122 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint211 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint212 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint221 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)+           (key_hint222 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))))+     (recv nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+	   ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen y)+    (uniq-orig nb)+    (neq ((exp (gen) x) (gen))))++  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self (nh_public l)))+     (recv "end-of-protocol")+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))))++; Initiator point of view: both LTX exponents secret+(defskeleton nhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb) (neq (a b)))++; Initiator point of view: partner's exponent secret+(defskeleton nhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxb)+  (neq (a b)))++; Responder point of view; both exponents secret+(defskeleton nhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb)+  (neq (a b)))++; Responder point of view; partner's exponent secre+(defskeleton nhcr-um3+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint111 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint112 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint121 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint122 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint211 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint212 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint221 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-um3+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint222 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))
+ tst/nhcr_um3.tst view
@@ -0,0 +1,22358 @@+(herald "NHCR: unified model (UM3) original" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.7")+(comment "All input read from tst/nhcr_um3.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat self (hash "public" ltxa))))+    ((send (cat self-0 (hash "public" ltxb)))))+  (label 0)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb)))))+  (label 1)+  (parent 0)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))))+  (label 2)+  (parent 1)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hint3 (hash "hint" (hash "share" (hash "public" x) y))))))+  (origs (nb (3 2)) (na (0 1))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (enc na nb a b hint1 hint2 hint3+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 3)+  (parent 1)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 4)+  (parent 3)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (5 0)) ((2 0) (0 0))+    ((3 1) (0 2)) ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))+  (label 5)+  (parent 4)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxb))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat self (hash "public" ltxb)))))+  (label 6)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat b (hash "public" ltxb)))))+  (label 7)+  (parent 6)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen y ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb)) ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hint3 (hash "hint" (hash "share" (hash "public" x) y))))))+  (origs (nb (2 2)) (na (0 1))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (enc na nb a b hint1 hint2 hint3+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 9)+  (parent 7)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 10)+  (parent 9)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+  (label 11)+  (parent 10)+  (unrealized (3 0) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+      (send (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 12)+  (parent 11)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat self (hash "public" ltxa))))+    ((send (cat self-0 (hash "public" ltxb)))))+  (label 13)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb)))))+  (label 14)+  (parent 13)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "9 in cohort - 9 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))+  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb)))+  (label 15)+  (parent 14)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (3 1)) (nb (0 2))))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 16)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 17)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 18)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 19)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 20)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 21)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 22)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 23)+  (parent 14)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 24)+  (parent 16)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 25)+  (parent 17)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 26)+  (parent 18)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 27)+  (parent 19)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 28)+  (parent 20)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 29)+  (parent 21)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 30)+  (parent 22)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 31)+  (parent 23)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 32)+  (parent 24)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 33)+  (parent 25)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 34)+  (parent 26)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 35)+  (parent 27)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 36)+  (parent 28)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 37)+  (parent 29)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 38)+  (parent 30)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 39)+  (parent 31)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 40)+  (parent 32)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 41)+  (parent 33)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 42)+  (parent 34)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 43)+  (parent 35)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat self (hash "public" ltxa)))))+  (label 44)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa)))))+  (label 45)+  (parent 44)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "9 in cohort - 9 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen y ltxa x)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb)))+  (label 46)+  (parent 45)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (2 1)) (nb (0 2))))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 47)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 48)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 49)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 50)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 51)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 52)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 53)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 54)+  (parent 45)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 55)+  (parent 47)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 56)+  (parent 48)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 57)+  (parent 49)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 58)+  (parent 50)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 59)+  (parent 51)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 60)+  (parent 52)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 61)+  (parent 53)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 62)+  (parent 54)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 63)+  (parent 55)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 64)+  (parent 56)+  (unrealized (3 0) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 65)+  (parent 57)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 66)+  (parent 58)+  (unrealized (3 0) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 67)+  (parent 59)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 68)+  (parent 60)+  (unrealized (3 0) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 69)+  (parent 61)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 70)+  (parent 62)+  (unrealized (3 0) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 71)+  (parent 63)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 72)+  (parent 64)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 73)+  (parent 65)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 74)+  (parent 66)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 75)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 76)+  (parent 75)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 77)+  (parent 76)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 78)+  (parent 77)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 79)+  (parent 78)+  (unrealized (0 2) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l))))+  (label 80)+  (parent 79)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))))+  (label 81)+  (parent 80)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (0 2)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (enc na nb a b hint1 hint2 hint3+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 82)+  (parent 80)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))+    ((7 2) (8 0)) ((8 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 83)+  (parent 81)+  (unrealized (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 84)+  (parent 82)+  (unrealized (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))+    ((7 2) (9 0)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (8 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 85)+  (parent 83)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (8 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))+  (label 86)+  (parent 84)+  (unrealized (8 0) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (10 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (9 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1)))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 87)+  (parent 86)+  (unrealized (8 0) (10 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 88)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 89)+  (parent 88)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 90)+  (parent 89)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 91)+  (parent 90)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 92)+  (parent 91)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l))))+  (label 93)+  (parent 92)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) y))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y))))+    (hash "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (label 94)+  (parent 93)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) y))))+  (deflistener (cat "share" (hash "public" y) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) x))+    (hash "share" (hash "public" y) x) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    ((recv (cat "share" (hash "public" y) x))+      (send (cat "share" (hash "public" y) x))))+  (label 95)+  (parent 94)+  (unrealized (0 2) (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 96)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 97)+  (parent 96)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 98)+  (parent 97)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 99)+  (parent 98)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 100)+  (parent 99)+  (unrealized (0 2) (5 0) (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 101)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 102)+  (parent 101)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 103)+  (parent 102)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 104)+  (parent 103)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 105)+  (parent 104)+  (unrealized (0 2) (5 0) (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 106)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 107)+  (parent 106)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 108)+  (parent 107)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 109)+  (parent 108)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 110)+  (parent 109)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 111)+  (parent 110)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 112)+  (parent 111)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 113)+  (parent 112)+  (unrealized (0 2) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation nonce-test (displaced 9 3 ltx-gen 3) l-0 (8 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0))))+  (label 114)+  (parent 113)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))+    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "hint" (hash "share" (hash "public" x) y))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))))+  (label 115)+  (parent 114)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (0 2)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (enc na nb a b hint1 hint2 hint3+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (0 2))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 116)+  (parent 114)+  (unrealized (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) y))))+  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))+    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)) ((9 2) (10 0))+    ((10 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y))))+    (hash "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (label 117)+  (parent 115)+  (unrealized (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (0 2)) ((10 1) (9 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (9 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))+  (label 118)+  (parent 116)+  (unrealized (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))+    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) y)+      (hash "hint" (hash "share" (hash "public" x) y))))+  (deflistener (cat "share" (hash "public" x) y))+  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))+    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)) ((9 2) (11 0))+    ((10 1) (4 0)) ((11 1) (10 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) y))+    (hash "share" (hash "public" x) y) (10 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) y)+         (hash "hint" (hash "share" (hash "public" x) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    ((recv (cat "share" (hash "public" x) y))+      (send (cat "share" (hash "public" x) y))))+  (label 119)+  (parent 117)+  (unrealized (11 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (11 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+    (hash "nh_key" (hash "share" (hash "public" y) l) hint1) (10 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1))))+  (label 120)+  (parent 118)+  (unrealized (10 0) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener+    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0))+    ((12 1) (11 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) l))+    (hash "share" (hash "public" y) l) (11 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1)))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 121)+  (parent 120)+  (unrealized (10 0) (12 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 122)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 123)+  (parent 122)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 124)+  (parent 123)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 125)+  (parent 124)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 126)+  (parent 125)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 127)+  (parent 126)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 128)+  (parent 127)+  (unrealized (0 2) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 129)+  (parent 128)+  (unrealized (0 2) (4 0) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation nonce-test (displaced 9 3 ltx-gen 3) l-0 (8 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0))))+  (label 130)+  (parent 129)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) y))))+  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (4 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y))))+    (hash "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) y))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y))))))+  (label 131)+  (parent 130)+  (unrealized (0 2) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)+    (y expt) (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) x)+      (hash "hint" (hash "share" (hash "public" x) y))))+  (deflistener (cat "share" (hash "public" y) x))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (4 0)) ((10 1) (9 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) x))+    (hash "share" (hash "public" y) x) (9 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) x)+         (hash "hint" (hash "share" (hash "public" x) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    ((recv (cat "share" (hash "public" y) x))+      (send (cat "share" (hash "public" y) x))))+  (label 132)+  (parent 131)+  (unrealized (0 2) (10 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 133)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 134)+  (parent 133)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" x) y)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 135)+  (parent 134)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 136)+  (parent 135)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 137)+  (parent 136)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 138)+  (parent 137)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 139)+  (parent 138)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" x) y)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" x) y)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" x) y)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 140)+  (parent 139)+  (unrealized (0 2) (7 0) (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-um3 diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 hint3 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (hash "hint" (hash "share" (hash "public" x) y))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" x) y)+                (hash "hint" (hash "share" (hash "public" x) y)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "hint" (hash "share" (hash "public" x) y))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))+              (hash "nh_key" (hash "share" (hash "public" y) x)+                (hash "hint" (hash "share" (hash "public" x) y)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 141)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 142)+  (parent 141)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))+        (hash "nh_key" (hash "share" (hash "public" y) x)+          (hash "hint" (hash "share" (hash "public" x) y)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y)))))))+  (label 143)+  (parent 142)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 144)+  (parent 143)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 145)+  (parent 144)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 146)+  (parent 145)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 147)+  (parent 146)+  (unrealized (0 2) (4 0) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-um3+  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)+    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))+      (hash "nh_key" (hash "share" (hash "public" y) x)+        (hash "hint" (hash "share" (hash "public" x) y)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2 hint3+          (enc na nb a b hint1 hint2 hint3+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2)+              (hash "nh_key" (hash "share" (hash "public" y) x)+                hint3))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))+         (hash "nh_key" (hash "share" (hash "public" y) x)+           (hash "hint" (hash "share" (hash "public" x) y)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))+          (hash "nh_key" (hash "share" (hash "public" y) x)+            (hash "hint" (hash "share" (hash "public" x) y))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 148)+  (parent 147)+  (unrealized (0 2) (7 0) (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/nhcr_umx.scm view
@@ -0,0 +1,184 @@+; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex++; This file models the "Unified Model" method of determining a fresh+; key from long-term and ephemeral Diffie-Hellman exponents.  We use+; function relation declarations to link names to long-term public+; values.++;;; This file contains the standard version, in which the two+;;; ephemeral are mixed, as are the two static exponents.++; A role is provided in which a party signs a fresh long-term+; Diffie-Hellman value, and then leaks the exponent.  The latter step+; is used to test the notion of forward security.++; Two inputs are analyzed.  In the first, we model that two+; participants exist that agree on the UM key.  The notion of+; "implicit authentication" suggests that if one participant exists+; and another party knows the same key, that party must be either the+; participant or the participant's intended partner.++; In this version, we assume that the long-term keys of the+; participants do not leak.++; The second input checks whether the key can be learned when the key+; is generated honestly.  In this version, we do NOT assume that the+; long-term keys of the participants do not leak.++(herald "NHCR: unified model (UMX) criss-cross" (bound 20) (limit 8000) (algebra diffie-hellman))++(defmacro (nh_public k1)+  ;(exp (gen) x1))+  (hash "public" k1))++(defmacro (nh_share k1 k2)+  ;(hash "share" (nh_public (mul x1 x2))))+  (hash "share" (nh_public k1) k2))++; Use this macro to generate the hint+(defmacro (nh_hint k1 k2)+  (hash "hint" (nh_share k1 k2)))++(defmacro (nh_key1 k1 k2 h)+  (hash "nh_key" (nh_share k1 k2) h))++(defmacro (nh_key2 k1 k2 h)+  (hash "nh_key" (nh_share k2 k1) h))++(defmacro (key_hint11 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2)))++(defmacro (key_hint12 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2)))++(defmacro (key_hint21 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2)))++(defmacro (key_hint22 ltk1 ltk2 ek1 ek2 h1 h2)+  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2)))++;(defmacro (key ltk1 ltk2 ek1 ek2)+;  (key_hint ltk1 ltk2 (nh_hint ltk1 ek2) ek1 ek2 (nh_hint ek1 ltk2)))++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data) (hint1 hint2 mesg))+    (trace+     (recv (cat (nh_public ltxa) (nh_public ltxb)))+     (send (cat na a b (nh_public x)))+     (recv (cat (nh_public y) hint1 hint2+                (enc na nb a b hint1 hint2+                     (key_hint22 ltxa ltxb x y hint1 hint2))))+     (send nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+           ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen x)+    (uniq-orig na)+    (neq ((exp (gen) y) (gen))))++  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace+     (recv (cat (nh_public ltxa) (nh_public ltxb)))+     (recv (cat na a b (nh_public x)))+     (send (cat (nh_public y) (nh_hint ltxa y) (nh_hint x ltxb)+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)+		     (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))))+     (recv nb)+     )+    (fn-of ("principal-of" (ltxa a) (ltxb b))+	   ("ltx-of" (a ltxa) (b ltxb)))+    (uniq-gen y)+    (uniq-orig nb)+    (neq ((exp (gen) x) (gen))))++  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace+     (send (cat self (nh_public l)))+     (recv "end-of-protocol")+     (send l))+    (uniq-gen l)+    (fn-of ("principal-of" (l self))+	   ("ltx-of" (self l)))))++; Initiator point of view: partner's exponent secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (non-orig ltxb)+  (neq (a b)))++; Initiator point of view: both LTX exponents secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb) (neq (a b)))++; Responder point of view; both exponents secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (defstrand ltx-gen 1 (l ltxb))+  (non-orig ltxa ltxb)+  (neq (a b)))++; Responder point of view; partner's exponent secret+(defskeleton nhcr-umx+  (vars (ltxa ltxb rndx) (a b name))+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))+  (defstrand ltx-gen 1 (l ltxa))+  (non-orig ltxa)+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))++;;; Forward secrecy, neither long-term exponent secure+(defskeleton nhcr-umx+  (vars (ltxa ltxb x rndx) (y expt) (a b name))+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))+  (deflistener (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))+  (defstrand ltx-gen 3 (l ltxa))+  (defstrand ltx-gen 3 (l ltxb))+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))+  (neq (a b)))
+ tst/nhcr_umx.tst view
@@ -0,0 +1,9181 @@+(herald "NHCR: unified model (UMX) criss-cross" (bound 20) (limit 8000)+  (algebra diffie-hellman))++(comment "CPSA 3.6.7")+(comment "All input read from tst/nhcr_umx.scm")+(comment "Step count limited to 8000")+(comment "Strand count bounded at 20")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb)))))+  (label 0)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen y ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)) ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (origs (nb (2 2)) (na (0 1))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            hint2)))))+  (label 2)+  (parent 0)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+    (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            hint2)))))+  (label 3)+  (parent 2)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+  (label 4)+  (parent 3)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxb)+  (uniq-gen ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+      (send (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 5)+  (parent 4)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat self (hash "public" ltxa))))+    ((send (cat self-0 (hash "public" ltxb)))))+  (label 6)+  (unrealized (0 0) (0 2))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb)))))+  (label 7)+  (parent 6)+  (unrealized (0 2))+  (origs (na (0 1)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (origs (nb (3 2)) (na (0 1))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            hint2)))))+  (label 9)+  (parent 7)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))+    ((4 1) (3 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))+    (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            hint2)))))+  (label 10)+  (parent 9)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (5 0)) ((2 0) (0 0))+    ((3 1) (0 2)) ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))+  (label 11)+  (parent 10)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (defstrand ltx-gen 1 (self self-0) (l ltxb))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat self (hash "public" ltxa))))+    ((send (cat self-0 (hash "public" ltxb)))))+  (label 12)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb)))))+  (label 13)+  (parent 12)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))+  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)))+  (label 14)+  (parent 13)+  (unrealized)+  (shape)+  (maps+    ((0 1 2)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (3 1)) (nb (0 2))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 15)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 16)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 17)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 18)+  (parent 13)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 19)+  (parent 15)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 20)+  (parent 16)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 21)+  (parent 17)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 22)+  (parent 18)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 23)+  (parent 19)+  (unrealized (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 24)+  (parent 20)+  (unrealized (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 25)+  (parent 21)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 26)+  (parent 22)+  (unrealized (4 0) (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 27)+  (parent 23)+  (unrealized (6 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand ltx-gen 1 (self b) (l ltxb))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))+    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa ltxb)+  (uniq-gen ltxa ltxb y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((send (cat b (hash "public" ltxb))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 28)+  (parent 24)+  (unrealized (4 0) (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self self) (l ltxa))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat self (hash "public" ltxa)))))+  (label 29)+  (unrealized (0 0) (0 3))+  (preskeleton)+  (origs (nb (0 2)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (precedes ((1 0) (0 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa)))))+  (label 30)+  (parent 29)+  (unrealized (0 3))+  (origs (nb (0 2)))+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))+    ((2 3) (0 3)))+  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen y ltxa x)+  (uniq-orig na nb)+  (operation nonce-test (added-strand init 4) nb (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb)))+  (label 31)+  (parent 30)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)+        (nb nb))))+  (origs (na (2 1)) (nb (0 2))))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 32)+  (parent 30)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 33)+  (parent 30)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 34)+  (parent 30)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation nonce-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb+    (0 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 35)+  (parent 30)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 36)+  (parent 32)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 37)+  (parent 33)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 38)+  (parent 34)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 39)+  (parent 35)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 40)+  (parent 36)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 41)+  (parent 37)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 42)+  (parent 38)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 43)+  (parent 39)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 44)+  (parent 40)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (defstrand ltx-gen 1 (self a) (l ltxa))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))+    ((4 1) (3 0)) ((5 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) x) (gen)))+  (non-orig ltxa)+  (uniq-gen ltxa y)+  (uniq-orig nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb)) ((send (cat a (hash "public" ltxa))))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 45)+  (parent 41)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 46)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 47)+  (parent 46)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 48)+  (parent 47)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 49)+  (parent 48)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 50)+  (parent 49)+  (unrealized (0 2) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))+    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l))))+  (label 51)+  (parent 50)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 52)+  (parent 51)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (0 2)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))))+  (label 53)+  (parent 51)+  (unrealized (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))+    ((7 2) (8 0)) ((8 1) (4 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 54)+  (parent 52)+  (unrealized (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)) (7 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))))+  (label 55)+  (parent 53)+  (unrealized (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxa) y)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" ltxa) y))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))+    ((7 2) (9 0)) ((8 1) (4 0)) ((9 1) (8 0)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxa) y))+    (hash "share" (hash "public" ltxa) y) (8 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb))))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxa) y)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" ltxa) y))+      (send (cat "share" (hash "public" ltxa) y))))+  (label 56)+  (parent 54)+  (unrealized (9 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))+    ((9 1) (8 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (8 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))+  (label 57)+  (parent 55)+  (unrealized (8 0) (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l l))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l)+        (hash "hint" (hash "share" (hash "public" x) l)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l)+      (hash "hint" (hash "share" (hash "public" x) l))))+  (deflistener (cat "share" (hash "public" x) l))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (10 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))+    ((9 1) (8 0)) ((10 1) (9 0)))+  (absent (x ltxa) (x l))+  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (9 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" l)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" l) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l)+           (hash "hint" (hash "share" (hash "public" x) l)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l)+            (hash "hint" (hash "share" (hash "public" x) l))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l)+         (hash "hint" (hash "share" (hash "public" x) l))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l)+          (hash "hint" (hash "share" (hash "public" x) l)))))+    ((recv (cat "share" (hash "public" x) l))+      (send (cat "share" (hash "public" x) l)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)+          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1)))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 58)+  (parent 57)+  (unrealized (8 0) (10 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 59)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 60)+  (parent 59)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" ltxa) y)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 61)+  (parent 60)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 62)+  (parent 61)+  (unrealized (0 2) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" ltxa) y)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" ltxa) y)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" ltxa) y)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 63)+  (parent 62)+  (unrealized (0 2) (5 0) (6 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 64)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 65)+  (parent 64)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 66)+  (parent 65)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 67)+  (parent 66)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 68)+  (parent 67)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 69)+  (parent 68)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 70)+  (parent 69)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" x) ltxb))+    (hash "share" (hash "public" x) ltxb) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb))))+  (label 71)+  (parent 70)+  (unrealized (0 2) (8 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation nonce-test (displaced 9 3 ltx-gen 3) l-0 (8 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0))))+  (label 72)+  (parent 71)+  (unrealized (0 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))+    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))+    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation encryption-test (added-strand resp 3)+    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))+      (hash "hint" (hash "share" (hash "public" x) ltxb))+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 73)+  (parent 72)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (0 2)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+    (enc na nb a b hint1 hint2+      (hash "key"+        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+    (0 2))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))))+  (label 74)+  (parent 72)+  (unrealized (9 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (8 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (8 0))+    ((3 2) (7 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (1 0))+    ((7 1) (6 0)) ((8 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 75)+  (parent 73)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (deflistener+    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))+    ((9 1) (0 2)) ((10 1) (9 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)) (9 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))))+  (label 76)+  (parent 74)+  (unrealized (10 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (7 0)) ((2 2) (4 0)) ((3 0) (0 0)) ((3 0) (7 0))+    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (5 0))+    ((7 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 77)+  (parent 75)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (deflistener+    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (11 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+    (hash "nh_key" (hash "share" (hash "public" y) l) hint1) (10 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1))))+  (label 78)+  (parent 76)+  (unrealized (10 0) (11 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) ltxb)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (6 0))+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) ltxb)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) ltxb)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 79)+  (parent 77)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)+    (l l-0 rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb l-0) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l l-0))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" x) l-0)+        (hash "hint" (hash "share" (hash "public" x) l-0)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" x) l-0)+      (hash "hint" (hash "share" (hash "public" x) l-0))))+  (deflistener (cat "share" (hash "public" x) l-0))+  (deflistener+    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (deflistener+    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))+    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0))+    ((12 1) (11 0)))+  (absent (x l) (x l-0))+  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen x l l-0)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) l))+    (hash "share" (hash "public" y) l) (11 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" l-0)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" l-0) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")+      (send l-0))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" x) l-0)+           (hash "hint" (hash "share" (hash "public" x) l-0)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" x) l-0)+            (hash "hint" (hash "share" (hash "public" x) l-0))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" x) l-0)+         (hash "hint" (hash "share" (hash "public" x) l-0))))+      (send+        (cat "nh_key" (hash "share" (hash "public" x) l-0)+          (hash "hint" (hash "share" (hash "public" x) l-0)))))+    ((recv (cat "share" (hash "public" x) l-0))+      (send (cat "share" (hash "public" x) l-0)))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))+    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))+      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1)))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 80)+  (parent 78)+  (unrealized (10 0) (12 0))+  (dead)+  (comment "empty cohort"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener (cat "share" (hash "public" x) ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (5 0))+    ((3 2) (4 0)) ((4 1) (1 0)) ((5 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat "share" (hash "public" x) ltxb))+      (send (cat "share" (hash "public" x) ltxb)))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 81)+  (parent 79)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))+  (defstrand init 4+    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)+    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" x) ltxb)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)+    (y y) (x x))+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (4 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (4 0))+    ((3 2) (1 0)) ((4 2) (0 2)))+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (a ltxa) (b ltxb))+    ("principal-of" (ltxa a) (ltxb b)))+  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))+  (uniq-gen y ltxa ltxb x)+  (uniq-orig na nb)+  (operation generalization deleted (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" x) ltxb)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" x) ltxb)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint"+                  (hash "share" (hash "public" x) ltxb)))))))))+  (label 82)+  (parent 81)+  (unrealized)+  (shape)+  (maps+    ((0 1 2 3)+      ((ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b) (na na) (nb nb)+        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (origs (nb (4 2)) (na (0 1))))++(comment "Nothing left to do")++(defprotocol nhcr-umx diffie-hellman+  (defrole init+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)+      (hint1 hint2 mesg))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    (uniq-orig na)+    (uniq-gen x)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) y) (gen)))+    (absent (x ltxa) (x ltxb)))+  (defrole resp+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))+    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (recv (cat na a b (hash "public" x)))+      (send+        (cat (hash "public" y)+          (hash "hint" (hash "share" (hash "public" ltxa) y))+          (hash "hint" (hash "share" (hash "public" x) ltxb))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" ltxa) y)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" x) ltxb)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))+          (enc na nb a b+            (hash "hint" (hash "share" (hash "public" ltxa) y))+            (hash "hint" (hash "share" (hash "public" x) ltxb))+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                (hash "hint" (hash "share" (hash "public" ltxa) y)))+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+      (recv nb))+    (uniq-orig nb)+    (uniq-gen y)+    (fn-of ("ltx-of" (a ltxa) (b ltxb))+      ("principal-of" (ltxa a) (ltxb b)))+    (neq ((exp (gen) x) (gen)))+    (absent (y ltxa) (y ltxb) (y x)))+  (defrole ltx-gen+    (vars (self name) (l rndx))+    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")+      (send l))+    (uniq-gen l)+    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)+    (ltxa ltxb x rndx) (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self self) (l ltxa))+  (defstrand ltx-gen 3 (self self-0) (l ltxb))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))+    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 83)+  (unrealized (0 0) (0 2) (1 0))+  (preskeleton)+  (origs (na (0 1)))+  (comment "Not a skeleton"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb)))+  (label 84)+  (parent 83)+  (unrealized (0 2) (1 0))+  (origs (na (0 1)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((3 0) (0 0)) ((4 1) (1 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "key"+        (hash "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))+        (hash "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))+  (label 85)+  (parent 84)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y))))+    (hash "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y))))))+  (label 86)+  (parent 85)+  (unrealized (0 2) (4 0) (5 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)+    (y expt))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l ltxa))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) ltxa)+        (hash "hint" (hash "share" (hash "public" ltxa) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) ltxa)+      (hash "hint" (hash "share" (hash "public" ltxa) y))))+  (deflistener (cat "share" (hash "public" y) ltxa))+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)))+  (absent (x ltxa) (x ltxb))+  (fn-of ("ltx-of" (b ltxb) (a ltxa))+    ("principal-of" (ltxb b) (ltxa a)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxa ltxb x)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" y) ltxa))+    (hash "share" (hash "public" y) ltxa) (5 0))+  (traces+    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) ltxa)+                hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")+      (send ltxa))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) ltxa)+           (hash "hint" (hash "share" (hash "public" ltxa) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) ltxa)+            (hash "hint" (hash "share" (hash "public" ltxa) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) ltxa)+         (hash "hint" (hash "share" (hash "public" ltxa) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) ltxa)+          (hash "hint" (hash "share" (hash "public" ltxa) y)))))+    ((recv (cat "share" (hash "public" y) ltxa))+      (send (cat "share" (hash "public" y) ltxa))))+  (label 87)+  (parent 86)+  (unrealized (0 2) (4 0) (6 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l))))+  (label 88)+  (parent 87)+  (unrealized (0 2) (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener+      (cat "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb))))+    (hash "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb))))))+  (label 89)+  (parent 88)+  (unrealized (0 2) (7 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton nhcr-umx+  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)+    (y expt) (l rndx))+  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)+    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))+  (deflistener+    (hash "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (defstrand ltx-gen 3 (self a) (l l))+  (defstrand ltx-gen 3 (self b) (l ltxb))+  (deflistener+    (cat "key"+      (hash "nh_key" (hash "share" (hash "public" y) l)+        (hash "hint" (hash "share" (hash "public" l) y)))+      (hash "nh_key" (hash "share" (hash "public" ltxb) x)+        (hash "hint" (hash "share" (hash "public" x) ltxb)))))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" y) l)+      (hash "hint" (hash "share" (hash "public" l) y))))+  (deflistener (cat "share" (hash "public" y) l))+  (deflistener+    (cat "nh_key" (hash "share" (hash "public" ltxb) x)+      (hash "hint" (hash "share" (hash "public" x) ltxb))))+  (deflistener (cat "share" (hash "public" ltxb) x))+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))+    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))+    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))+  (absent (x l) (x ltxb))+  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))+  (neq (a b) ((exp (gen) y) (gen)))+  (uniq-gen ltxb x l)+  (uniq-orig na)+  (operation encryption-test+    (added-listener (cat "share" (hash "public" ltxb) x))+    (hash "share" (hash "public" ltxb) x) (7 0))+  (traces+    ((recv (cat (hash "public" l) (hash "public" ltxb)))+      (send (cat na a b (hash "public" x)))+      (recv+        (cat (hash "public" y) hint1 hint2+          (enc na nb a b hint1 hint2+            (hash "key"+              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)+              (hash "nh_key" (hash "share" (hash "public" ltxb) x)+                hint2))))) (send nb))+    ((recv+       (hash "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (hash "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))+    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")+      (send ltxb))+    ((recv+       (cat "key"+         (hash "nh_key" (hash "share" (hash "public" y) l)+           (hash "hint" (hash "share" (hash "public" l) y)))+         (hash "nh_key" (hash "share" (hash "public" ltxb) x)+           (hash "hint" (hash "share" (hash "public" x) ltxb)))))+      (send+        (cat "key"+          (hash "nh_key" (hash "share" (hash "public" y) l)+            (hash "hint" (hash "share" (hash "public" l) y)))+          (hash "nh_key" (hash "share" (hash "public" ltxb) x)+            (hash "hint" (hash "share" (hash "public" x) ltxb))))))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" y) l)+         (hash "hint" (hash "share" (hash "public" l) y))))+      (send+        (cat "nh_key" (hash "share" (hash "public" y) l)+          (hash "hint" (hash "share" (hash "public" l) y)))))+    ((recv (cat "share" (hash "public" y) l))+      (send (cat "share" (hash "public" y) l)))+    ((recv+       (cat "nh_key" (hash "share" (hash "public" ltxb) x)+         (hash "hint" (hash "share" (hash "public" x) ltxb))))+      (send+        (cat "nh_key" (hash "share" (hash "public" ltxb) x)+          (hash "hint" (hash "share" (hash "public" x) ltxb)))))+    ((recv (cat "share" (hash "public" ltxb) x))+      (send (cat "share" (hash "public" ltxb) x))))+  (label 90)+  (parent 89)+  (unrealized (0 2) (7 0) (8 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/ns.tst view
@@ -2,7 +2,7 @@   (comment "This protocol contains a man-in-the-middle"     "attack discovered by Galvin Lowe.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/ns.scm")  (defprotocol ns basic
tst/or.tst view
@@ -1,7 +1,7 @@ (herald "Otway-Rees Protocol"   (comment "Standard version using variables of sort mesg")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/or.scm")  (defprotocol or basic
tst/ordered.tst view
@@ -1,6 +1,6 @@ (herald ordered) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/ordered.scm")  (defprotocol ordered basic
tst/owang.tst view
@@ -1,4 +1,4 @@-(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/owang.scm")  (defprotocol wang basic
tst/owat.tst view
@@ -1,7 +1,7 @@ (herald "One-way Authentication Test with bltk keys"   (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/owat.scm")  (defprotocol owa diffie-hellman
tst/pkinit.tst view
@@ -1,6 +1,6 @@ (herald "Kerberos PKINIT") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/pkinit.scm")  (defprotocol pkinit-flawed basic
tst/plaindh.tst view
@@ -1,7 +1,7 @@ (herald "Plain diffie-hellman protocol with challenge-response"   (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/plaindh.scm")  (defprotocol plaindh diffie-hellman
+ tst/precursor.scm view
@@ -0,0 +1,23 @@+(herald precursor (algebra diffie-hellman) (bound 6))++(defprotocol precursor diffie-hellman+  (defrole init+    (vars (x y rndx))+    (trace (send (cat (exp (gen) x) (exp (gen) y)))+	   (recv (exp (gen) (mul x y))))+    (uniq-gen x y)))++(defskeleton precursor+  (vars)+  (defstrand init 2))++;; (defskeleton precurser+;;   (vars (x y rndx) (x-0 x-1 expt))+;;   (defstrand init 2 (x x) (y y))+;;   (deflistener (cat (exp (gen) (mul x y x-0)) x-0))+;;   (deflistener (cat (exp (gen) (mul x y x-1)) x-1))+;;   (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+;;   (uniq-gen x y)+;;   (pov (0) (defskeleton precurser+;; 	     (vars)+;; 	     (defstrand init 2))))
+ tst/precursor.tst view
@@ -0,0 +1,62 @@+(herald precursor (algebra diffie-hellman) (bound 6))++(comment "CPSA 3.6.8")+(comment "All input read from tst/precursor.scm")+(comment "Strand count bounded at 6")++(defprotocol precursor diffie-hellman+  (defrole init+    (vars (x y rndx))+    (trace (send (cat (exp (gen) x) (exp (gen) y)))+      (recv (exp (gen) (mul x y))))+    (uniq-gen x y)))++(defskeleton precursor+  (vars (x y rndx))+  (defstrand init 2 (x x) (y y))+  (uniq-gen x y)+  (traces+    ((send (cat (exp (gen) x) (exp (gen) y)))+      (recv (exp (gen) (mul x y)))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton precursor+  (vars (x y rndx))+  (defstrand init 2 (x x) (y y))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (0 1))+  (traces+    ((send (cat (exp (gen) x) (exp (gen) y)))+      (recv (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 1)+  (parent 0)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton precursor+  (vars (x y rndx))+  (defstrand init 2 (x x) (y y))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (0 1))+  (traces+    ((send (cat (exp (gen) x) (exp (gen) y)))+      (recv (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 2)+  (parent 0)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/priority_test.tst view
@@ -1,6 +1,6 @@ (herald "Receive priority test protocol") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/priority_test.scm")  (defprotocol priority_test basic
tst/prottrans.tst view
@@ -1,6 +1,6 @@ (herald "Protocol Transformations With Rules") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/prottrans.scm")  (defprotocol ns basic
tst/reflect.tst view
@@ -1,6 +1,6 @@ (herald reflect) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/reflect.scm")  (defprotocol reflect basic
+ tst/reflect_dh.scm view
@@ -0,0 +1,28 @@+(herald reflect+	(algebra diffie-hellman))++;; A simple protocol vulnerable to a reflection attack++(defprotocol reflect diffie-hellman+  (defrole init+    (vars (a b akey))+    (trace+     (send (enc b (invk a)))+     (recv (enc a (invk b)))))+  (defrole resp+    (vars (a b akey))+    (trace+     (recv (enc b (invk a)))+     (send (enc a (invk b))))))++;; Expect two shapes++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (non-orig (invk a) (invk b)))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (non-orig (invk a) (invk b)))
+ tst/reflect_dh.tst view
@@ -0,0 +1,339 @@+(herald reflect (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/reflect_dh.scm")++(defprotocol reflect diffie-hellman+  (defrole init+    (vars (a b akey))+    (trace (send (enc b (invk a))) (recv (enc a (invk b)))))+  (defrole resp+    (vars (a b akey))+    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (non-orig (invk a) (invk b))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b)))))+  (label 0)+  (unrealized (0 0))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand init 1 (a a) (b b))+  (precedes ((1 0) (0 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand init 1) (enc b (invk a))+    (0 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((send (enc b (invk a)))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b))))+  (origs))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (precedes ((1 1) (0 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand resp 2) (enc b (invk a))+    (0 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a)))))+  (label 2)+  (parent 0)+  (unrealized (1 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand init 1 (a b) (b a))+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand init 1) (enc a (invk b))+    (1 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((send (enc a (invk b)))))+  (label 3)+  (parent 2)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b))))+  (origs))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand resp 2 (a a) (b b))+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand resp 2) (enc a (invk b))+    (1 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((recv (enc b (invk a))) (send (enc a (invk b)))))+  (label 4)+  (parent 2)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand resp 2 (a a) (b b))+  (defstrand init 1 (a a) (b b))+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand init 1) (enc b (invk a))+    (2 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((send (enc b (invk a)))))+  (label 5)+  (parent 4)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand resp 2) (enc b (invk a))+    (2 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a)))))+  (label 6)+  (parent 4)+  (seen 4)+  (unrealized (3 0))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (defstrand init 1 (a a) (b b))+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))+  (non-orig (invk a) (invk b))+  (operation generalization deleted (1 0))+  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((send (enc b (invk a)))))+  (label 7)+  (parent 5)+  (seen 1)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(comment "Nothing left to do")++(defprotocol reflect diffie-hellman+  (defrole init+    (vars (a b akey))+    (trace (send (enc b (invk a))) (recv (enc a (invk b)))))+  (defrole resp+    (vars (a b akey))+    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (non-orig (invk a) (invk b))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b)))))+  (label 8)+  (unrealized (0 1))+  (origs)+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton reflect+  (vars (b akey))+  (defstrand init 2 (a b) (b b))+  (non-orig (invk b))+  (operation encryption-test (displaced 1 0 init 1) (enc a (invk b))+    (0 1))+  (traces ((send (enc b (invk b))) (recv (enc b (invk b)))))+  (label 9)+  (parent 8)+  (unrealized)+  (shape)+  (maps ((0) ((a b) (b b))))+  (origs))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand init 1 (a b) (b a))+  (precedes ((1 0) (0 1)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand init 1) (enc a (invk b))+    (0 1))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((send (enc a (invk b)))))+  (label 10)+  (parent 8)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b))))+  (origs))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (precedes ((1 1) (0 1)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand resp 2) (enc a (invk b))+    (0 1))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b)))))+  (label 11)+  (parent 8)+  (unrealized (1 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (displaced 2 0 init 1) (enc b (invk a))+    (1 0))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b)))))+  (label 12)+  (parent 11)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b))))+  (origs))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (defstrand init 1 (a a) (b b))+  (precedes ((1 1) (0 1)) ((2 0) (1 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand init 1) (enc b (invk a))+    (1 0))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((send (enc b (invk a)))))+  (label 13)+  (parent 11)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b))))+  (origs))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (precedes ((1 1) (0 1)) ((2 1) (1 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand resp 2) (enc b (invk a))+    (1 0))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a)))))+  (label 14)+  (parent 11)+  (unrealized (2 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton reflect+  (vars (b akey))+  (defstrand init 2 (a b) (b b))+  (defstrand resp 2 (a b) (b b))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (invk b))+  (operation encryption-test (displaced 3 0 init 1) (enc a (invk b))+    (2 0))+  (traces ((send (enc b (invk b))) (recv (enc b (invk b))))+    ((recv (enc b (invk b))) (send (enc b (invk b)))))+  (label 15)+  (parent 14)+  (seen 9)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand init 1 (a b) (b a))+  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand init 1) (enc a (invk b))+    (2 0))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((send (enc a (invk b)))))+  (label 16)+  (parent 14)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand resp 2 (a a) (b b))+  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+  (non-orig (invk a) (invk b))+  (operation encryption-test (added-strand resp 2) (enc a (invk b))+    (2 0))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc b (invk a))) (send (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((recv (enc b (invk a))) (send (enc a (invk b)))))+  (label 17)+  (parent 14)+  (seen 14)+  (unrealized (3 0))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton reflect+  (vars (a b akey))+  (defstrand init 2 (a a) (b b))+  (defstrand resp 2 (a b) (b a))+  (defstrand init 1 (a b) (b a))+  (precedes ((1 1) (0 1)) ((2 0) (1 0)))+  (non-orig (invk a) (invk b))+  (operation generalization deleted (1 0))+  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))+    ((recv (enc a (invk b))) (send (enc b (invk a))))+    ((send (enc a (invk b)))))+  (label 18)+  (parent 16)+  (seen 10)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(comment "Nothing left to do")
tst/role_uniq.tst view
@@ -1,6 +1,6 @@ (herald "Role Unique Origination") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/role_uniq.scm")  (defprotocol blanchet basic
tst/rule-order.tst view
@@ -1,6 +1,6 @@ (herald rule-order) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/rule-order.scm")  (defprotocol rule-order basic
tst/staticdh.tst view
@@ -1,6 +1,6 @@ (herald "Static DH key exchange" (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/staticdh.scm")  (defprotocol staticdh1 diffie-hellman@@ -135,7 +135,8 @@   (label 4)   (parent 2)   (unrealized (3 0))-  (comment "1 in cohort - 1 not yet seen"))+  (dead)+  (comment "empty cohort"))  (defskeleton staticdh1   (vars (n text) (a b ca b-0 name) (y x rndx))@@ -256,36 +257,6 @@   (comment "2 in cohort - 2 not yet seen"))  (defskeleton staticdh1-  (vars (n text) (a b ca name) (x x-0 rndx) (w expt))-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))-  (defstrand ca 1 (p a) (ca ca) (x x))-  (defstrand ca 1 (p b) (ca ca) (x x-0))-  (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))-  (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)) ((4 1) (3 0)))-  (fn-of (owner-of (b x-0) (a x)))-  (neq (a b))-  (non-orig (privk ca) x x-0)-  (uniq-orig n)-  (precur (4 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))-    (exp (gen) (mul x x-0)) (3 0))-  (traces-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))-    ((send (enc "cert" (exp (gen) x) a (privk ca))))-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (exp (gen) (mul x x-0 (rec w))) w))-      (send (cat (exp (gen) (mul x x-0 (rec w))) w))))-  (label 9)-  (parent 4)-  (unrealized (4 0))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton staticdh1   (vars (n text) (a b ca name) (x x-0 rndx))   (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0))   (defstrand ca 1 (p a) (ca ca) (x x-0))@@ -308,7 +279,7 @@     ((recv (enc "cert" (exp (gen) x) b (privk ca)))       (recv (enc "cert" (exp (gen) x-0) a (privk ca)))       (recv (enc n (exp (gen) (mul x x-0)))) (send n)))-  (label 10)+  (label 9)   (parent 5)   (unrealized)   (shape)@@ -340,7 +311,7 @@       (recv (enc "cert" (exp (gen) x-0) a (privk ca)))       (recv (enc n (exp (gen) (mul x x-0)))) (send n))     ((send (enc "cert" (exp (gen) x-0) a (privk ca)))))-  (label 11)+  (label 10)   (parent 5)   (unrealized)   (shape)@@ -372,7 +343,7 @@       (recv (enc "cert" (exp (gen) x-0) a (privk ca)))       (recv (enc n (exp (gen) (mul x x-0)))) (send n))     ((send (enc "cert" (exp (gen) x) b (privk ca)))))-  (label 12)+  (label 11)   (parent 6)   (unrealized)   (shape)@@ -407,7 +378,7 @@       (recv (enc n (exp (gen) (mul x x-0)))) (send n))     ((send (enc "cert" (exp (gen) x) b (privk ca-0))))     ((send (enc "cert" (exp (gen) x-0) a (privk ca-0)))))-  (label 13)+  (label 12)   (parent 6)   (unrealized)   (shape)@@ -437,7 +408,7 @@     ((recv (enc "cert" (exp (gen) x) a (privk ca)))       (recv (enc "cert" (exp (gen) x-0) b (privk ca)))       (recv (enc n (exp (gen) (mul x x-0)))) (send n)))-  (label 14)+  (label 13)   (parent 7)   (unrealized)   (shape)@@ -469,7 +440,7 @@       (recv (enc "cert" (exp (gen) x-0) b (privk ca)))       (recv (enc n (exp (gen) (mul x x-0)))) (send n))     ((send (enc "cert" (exp (gen) x-0) b (privk ca)))))-  (label 15)+  (label 14)   (parent 7)   (unrealized)   (shape)@@ -501,7 +472,7 @@       (recv (enc "cert" (exp (gen) x-0) b (privk ca)))       (recv (enc n (exp (gen) (mul x x-0)))) (send n))     ((send (enc "cert" (exp (gen) x) a (privk ca)))))-  (label 16)+  (label 15)   (parent 8)   (unrealized)   (shape)@@ -536,72 +507,11 @@       (recv (enc n (exp (gen) (mul x x-0)))) (send n))     ((send (enc "cert" (exp (gen) x) a (privk ca-0))))     ((send (enc "cert" (exp (gen) x-0) b (privk ca-0)))))-  (label 17)+  (label 16)   (parent 8)   (unrealized)   (shape)   (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x) (n n))))   (origs (n (0 2))))--(defskeleton staticdh1-  (vars (n text) (a b ca name) (x x-0 rndx))-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))-  (defstrand ca 1 (p a) (ca ca) (x x))-  (defstrand ca 1 (p b) (ca ca) (x x-0))-  (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (gen) (mul x x-0)))-  (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)) ((4 1) (3 0)))-  (fn-of (owner-of (b x-0) (a x)))-  (neq (a b))-  (non-orig (privk ca) x x-0)-  (uniq-orig n)-  (precur (4 0))-  (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))-    (gen) (4 0))-  (traces-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))-    ((send (enc "cert" (exp (gen) x) a (privk ca))))-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0)))))-  (label 18)-  (parent 9)-  (unrealized (3 0) (4 0))-  (dead)-  (comment "empty cohort"))--(defskeleton staticdh1-  (vars (n text) (a b ca p ca-0 name) (x x-0 x-1 rndx))-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))-  (defstrand ca 1 (p a) (ca ca) (x x))-  (defstrand ca 1 (p b) (ca ca) (x x-0))-  (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))-  (defstrand ca 1 (p p) (ca ca-0) (x x-1))-  (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)) ((4 1) (3 0))-    ((5 0) (4 0)))-  (fn-of (owner-of (p x-1) (b x-0) (a x)))-  (neq (a b))-  (non-orig (privk ca) x x-0 x-1)-  (precur (4 0))-  (uniq-orig n)-  (operation nonce-test (added-strand ca 1) (exp (gen) x-1) (4 0))-  (traces-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))-    ((send (enc "cert" (exp (gen) x) a (privk ca))))-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))-      (send (cat (exp (gen) x-1) (mul x x-0 (rec x-1)))))-    ((send (enc "cert" (exp (gen) x-1) p (privk ca-0)))))-  (label 19)-  (parent 9)-  (unrealized (3 0) (4 0))-  (dead)-  (comment "empty cohort"))  (comment "Nothing left to do")
tst/station.scm view
@@ -18,16 +18,25 @@     (trace      (send (exp (gen) x))      (recv (cat (exp (gen) y)-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x)))))-     (send (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))))+		(enc (enc (exp (gen) y)+			  (exp (gen) x) (privk b))+		     (exp (gen) (mul y x)))))+     +     (send (enc (enc (exp (gen) x)+		     (exp (gen) y) (privk a))+		(exp (gen) (mul y x)))))     (uniq-gen x))   (defrole resp     (vars (y rndx) (x expt) (a b name))     (trace      (recv (exp (gen) x))      (send (cat (exp (gen) y)-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y)))))-     (recv (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))+		(enc (enc (exp (gen) y)+			  (exp (gen) x) (privk b))+		     (exp (gen) (mul x y)))))+     (recv (enc (enc (exp (gen) x)+		     (exp (gen) y) (privk a))+		(exp (gen) (mul x y)))))     (uniq-gen y)) ) @@ -49,8 +58,10 @@     (trace      (send (exp (gen) x))      (recv (cat (exp (gen) y)-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x)))))-     (send (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))))+		(enc (enc (exp (gen) y)+			  (exp (gen) x) (privk b)) (exp (gen) (mul y x)))))+     (send (enc (enc (exp (gen) x)+		     (exp (gen) y) (privk a)) (exp (gen) (mul y x))))) 					;(uniq-gen x)     )   (defrole weak-resp
tst/station.tst view
@@ -1,6 +1,6 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/station.scm")  (defprotocol station-to-station diffie-hellman@@ -141,21 +141,19 @@   (label 3)   (parent 1)   (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))+  (comment "2 in cohort - 2 not yet seen"))  (defskeleton station-to-station-  (vars (a b b-0 name) (x x-0 rndx) (w expt))+  (vars (a b b-0 name) (x x-0 rndx))   (defstrand init 3 (a a) (b b) (x x-0) (y x))   (defstrand init 3 (a b) (b b-0) (x x) (y x-0))   (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))+  (deflistener (cat (exp (gen) x) x-0))   (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))     ((3 1) (2 0)))   (non-orig (privk a) (privk b))   (uniq-gen x x-0)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))     (exp (gen) (mul x x-0)) (2 0))   (traces     ((send (exp (gen) x-0))@@ -175,48 +173,10 @@         (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))           (exp (gen) (mul x x-0)))))     ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (exp (gen) (mul x x-0 (rec w))) w))-      (send (cat (exp (gen) (mul x x-0 (rec w))) w))))+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))   (label 4)   (parent 3)   (unrealized (3 0))-  (comment "5 in cohort - 5 not yet seen"))--(defskeleton station-to-station-  (vars (a b b-0 name) (x x-0 rndx))-  (defstrand init 3 (a a) (b b) (x x-0) (y x))-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))-  (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (gen) (mul x x-0)))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (non-orig (privk a) (privk b))-  (uniq-gen x x-0)-  (precur (3 0))-  (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))-    (gen) (3 0))-  (traces-    ((send (exp (gen) x-0))-      (recv-        (cat (exp (gen) x)-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))-            (exp (gen) (mul x x-0)))))-      (send-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))-          (exp (gen) (mul x x-0)))))-    ((send (exp (gen) x))-      (recv-        (cat (exp (gen) x-0)-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))-            (exp (gen) (mul x x-0)))))-      (send-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))-          (exp (gen) (mul x x-0)))))-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0)))))-  (label 5)-  (parent 4)-  (unrealized (2 0) (3 0))   (dead)   (comment "empty cohort")) @@ -229,9 +189,9 @@   (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))     ((3 1) (2 0)))   (non-orig (privk a) (privk b))-  (precur (3 0))   (uniq-gen x x-0)-  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))+    (exp (gen) (mul x x-0)) (2 0))   (traces     ((send (exp (gen) x-0))       (recv@@ -251,134 +211,12 @@           (exp (gen) (mul x x-0)))))     ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))     ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))-  (label 6)-  (parent 4)-  (unrealized (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton station-to-station-  (vars (a b b-0 name) (x x-0 rndx))-  (defstrand init 3 (a a) (b b) (x x) (y x-0))-  (defstrand init 3 (a b) (b b-0) (x x-0) (y x))-  (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (exp (gen) x-0) x))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x x-0)-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))-  (traces-    ((send (exp (gen) x))-      (recv-        (cat (exp (gen) x-0)-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))-            (exp (gen) (mul x x-0)))))-      (send-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))-          (exp (gen) (mul x x-0)))))-    ((send (exp (gen) x-0))-      (recv-        (cat (exp (gen) x)-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))-            (exp (gen) (mul x x-0)))))-      (send-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))-          (exp (gen) (mul x x-0)))))-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))-  (label 7)-  (parent 4)+  (label 5)+  (parent 3)   (unrealized (3 0))   (dead)   (comment "empty cohort")) -(defskeleton station-to-station-  (vars (a b b-0 name) (x x-0 x-1 rndx))-  (defstrand init 3 (a a) (b b) (x x-0) (y x))-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))-  (deflistener (exp (gen) (mul x x-0)))-  (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))-  (defstrand init 1 (x x-1))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 0) (3 0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x x-0 x-1)-  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))-  (traces-    ((send (exp (gen) x-0))-      (recv-        (cat (exp (gen) x)-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))-            (exp (gen) (mul x x-0)))))-      (send-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))-          (exp (gen) (mul x x-0)))))-    ((send (exp (gen) x))-      (recv-        (cat (exp (gen) x-0)-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))-            (exp (gen) (mul x x-0)))))-      (send-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))-          (exp (gen) (mul x x-0)))))-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))-    ((recv (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))-      (send (cat (exp (gen) x-1) (mul x x-0 (rec x-1)))))-    ((send (exp (gen) x-1))))-  (label 8)-  (parent 4)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton station-to-station-  (vars (a b b-0 b-1 name) (x expt) (x-0 x-1 y rndx))-  (defstrand init 3 (a a) (b b) (x x-1) (y x-0))-  (defstrand init 3 (a b) (b b-0) (x x-0) (y x-1))-  (deflistener (exp (gen) (mul x-0 x-1)))-  (deflistener (cat (exp (gen) y) (mul x-0 x-1 (rec y))))-  (defstrand resp 2 (b b-1) (y y) (x x))-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x-0 x-1 y)-  (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))-  (traces-    ((send (exp (gen) x-1))-      (recv-        (cat (exp (gen) x-0)-          (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b))-            (exp (gen) (mul x-0 x-1)))))-      (send-        (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk a))-          (exp (gen) (mul x-0 x-1)))))-    ((send (exp (gen) x-0))-      (recv-        (cat (exp (gen) x-1)-          (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b-0))-            (exp (gen) (mul x-0 x-1)))))-      (send-        (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b))-          (exp (gen) (mul x-0 x-1)))))-    ((recv (exp (gen) (mul x-0 x-1))) (send (exp (gen) (mul x-0 x-1))))-    ((recv (cat (exp (gen) y) (mul x-0 x-1 (rec y))))-      (send (cat (exp (gen) y) (mul x-0 x-1 (rec y)))))-    ((recv (exp (gen) x))-      (send-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-1))-            (exp (gen) (mul x y)))))))-  (label 9)-  (parent 4)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))- (comment "Nothing left to do")  (defprotocol station-to-station diffie-hellman@@ -421,7 +259,7 @@       (recv         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul y x))))))-  (label 10)+  (label 6)   (unrealized (0 2))   (origs)   (comment "1 in cohort - 1 not yet seen"))@@ -453,8 +291,8 @@       (send         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul x y))))))-  (label 11)-  (parent 10)+  (label 7)+  (parent 6)   (unrealized (1 1))   (comment "2 in cohort - 2 not yet seen")) @@ -486,8 +324,8 @@       (send         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul y x))))))-  (label 12)-  (parent 11)+  (label 8)+  (parent 7)   (unrealized)   (shape)   (maps ((0) ((a a) (b b) (y y) (x x))))@@ -523,65 +361,24 @@         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul x y)))))     ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))-  (label 13)-  (parent 11)+  (label 9)+  (parent 7)   (unrealized (2 0))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton station-to-station-  (vars (a b b-0 name) (x y rndx) (w expt))-  (defstrand resp 3 (a a) (b b) (y y) (x x))-  (defstrand init 3 (a a) (b b-0) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) (mul x y (rec w))) w))-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (uniq-gen x y)-  (precur (3 0))-  (operation nonce-test-    (added-listener (cat (exp (gen) (mul x y (rec w))) w))-    (exp (gen) (mul x y)) (2 0))-  (traces-    ((recv (exp (gen) x))-      (send-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))-            (exp (gen) (mul x y)))))-      (recv-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))-          (exp (gen) (mul x y)))))-    ((send (exp (gen) x))-      (recv-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))-            (exp (gen) (mul x y)))))-      (send-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))-          (exp (gen) (mul x y)))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) (mul x y (rec w))) w))-      (send (cat (exp (gen) (mul x y (rec w))) w))))-  (label 14)-  (parent 13)-  (unrealized (3 0))-  (comment "5 in cohort - 5 not yet seen"))+  (comment "2 in cohort - 2 not yet seen"))  (defskeleton station-to-station   (vars (a b b-0 name) (x y rndx))   (defstrand resp 3 (a a) (b b) (y y) (x x))   (defstrand init 3 (a a) (b b-0) (x x) (y y))   (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (gen) (mul x y)))+  (deflistener (cat (exp (gen) x) y))   (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))     ((3 1) (2 0)))   (absent (y (exp (gen) x)))   (non-orig (privk a) (privk b))   (uniq-gen x y)-  (precur (3 0))-  (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)-    (3 0))+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (2 0))   (traces     ((recv (exp (gen) x))       (send@@ -600,93 +397,14 @@         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul x y)))))     ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y)))))-  (label 15)-  (parent 14)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton station-to-station-  (vars (a b b-0 name) (y x rndx))-  (defstrand resp 3 (a a) (b b) (y y) (x x))-  (defstrand init 3 (a a) (b b-0) (x x) (y y))-  (deflistener (exp (gen) (mul y x)))-  (deflistener (cat (exp (gen) x) y))-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))-    ((3 1) (2 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen y x)-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))-  (traces-    ((recv (exp (gen) x))-      (send-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))-            (exp (gen) (mul y x)))))-      (recv-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))-          (exp (gen) (mul y x)))))-    ((send (exp (gen) x))-      (recv-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))-            (exp (gen) (mul y x)))))-      (send-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))-          (exp (gen) (mul y x)))))-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))     ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))-  (label 16)-  (parent 14)+  (label 10)+  (parent 9)   (unrealized (3 0))   (dead)   (comment "empty cohort"))  (defskeleton station-to-station-  (vars (a b b-0 name) (x y x-0 rndx))-  (defstrand resp 3 (a a) (b b) (y y) (x x))-  (defstrand init 3 (a a) (b b-0) (x x) (y y))-  (deflistener (exp (gen) (mul x y)))-  (deflistener (cat (exp (gen) x-0) (mul x y (rec x-0))))-  (defstrand init 1 (x x-0))-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 0) (3 0)))-  (absent (y (exp (gen) x)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x y x-0)-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))-  (traces-    ((recv (exp (gen) x))-      (send-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))-            (exp (gen) (mul x y)))))-      (recv-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))-          (exp (gen) (mul x y)))))-    ((send (exp (gen) x))-      (recv-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))-            (exp (gen) (mul x y)))))-      (send-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))-          (exp (gen) (mul x y)))))-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))-    ((recv (cat (exp (gen) x-0) (mul x y (rec x-0))))-      (send (cat (exp (gen) x-0) (mul x y (rec x-0)))))-    ((send (exp (gen) x-0))))-  (label 17)-  (parent 14)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))--(defskeleton station-to-station   (vars (a b b-0 name) (x y rndx))   (defstrand resp 3 (a a) (b b) (y y) (x x))   (defstrand init 3 (a a) (b b-0) (x x) (y y))@@ -696,9 +414,9 @@     ((3 1) (2 0)))   (absent (y (exp (gen) x)))   (non-orig (privk a) (privk b))-  (precur (3 0))   (uniq-gen x y)-  (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (2 0))   (traces     ((recv (exp (gen) x))       (send@@ -718,57 +436,12 @@           (exp (gen) (mul x y)))))     ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))     ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))-  (label 18)-  (parent 14)+  (label 11)+  (parent 9)   (unrealized (3 0))   (dead)   (comment "empty cohort")) -(defskeleton station-to-station-  (vars (a b b-0 b-1 name) (x expt) (x-0 y y-0 rndx))-  (defstrand resp 3 (a a) (b b) (y y) (x x-0))-  (defstrand init 3 (a a) (b b-0) (x x-0) (y y))-  (deflistener (exp (gen) (mul x-0 y)))-  (deflistener (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))-  (defstrand resp 2 (b b-1) (y y-0) (x x))-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))-    ((3 1) (2 0)) ((4 1) (3 0)))-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))-  (non-orig (privk a) (privk b))-  (precur (3 0))-  (uniq-gen x-0 y y-0)-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))-  (traces-    ((recv (exp (gen) x-0))-      (send-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x-0) (privk b))-            (exp (gen) (mul x-0 y)))))-      (recv-        (enc (enc (exp (gen) x-0) (exp (gen) y) (privk a))-          (exp (gen) (mul x-0 y)))))-    ((send (exp (gen) x-0))-      (recv-        (cat (exp (gen) y)-          (enc (enc (exp (gen) y) (exp (gen) x-0) (privk b-0))-            (exp (gen) (mul x-0 y)))))-      (send-        (enc (enc (exp (gen) x-0) (exp (gen) y) (privk a))-          (exp (gen) (mul x-0 y)))))-    ((recv (exp (gen) (mul x-0 y))) (send (exp (gen) (mul x-0 y))))-    ((recv (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))-      (send (cat (exp (gen) y-0) (mul x-0 y (rec y-0)))))-    ((recv (exp (gen) x))-      (send-        (cat (exp (gen) y-0)-          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b-1))-            (exp (gen) (mul x y-0)))))))-  (label 19)-  (parent 14)-  (unrealized (2 0) (3 0))-  (dead)-  (comment "empty cohort"))- (comment "Nothing left to do")  (defprotocol station-weak diffie-hellman@@ -808,7 +481,7 @@       (send         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul x y))))))-  (label 20)+  (label 12)   (unrealized (0 1))   (origs)   (comment "2 in cohort - 2 not yet seen"))@@ -839,8 +512,8 @@       (send         (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))           (exp (gen) (mul x x-0))))))-  (label 21)-  (parent 20)+  (label 13)+  (parent 12)   (unrealized)   (shape)   (maps ((0) ((a a) (b b) (x x-0) (y x))))@@ -870,8 +543,8 @@         (cat (exp (gen) y)           (enc (enc (exp (gen) y) (exp (gen) x) (privk b))             (exp (gen) (mul y x)))))))-  (label 22)-  (parent 20)+  (label 14)+  (parent 12)   (unrealized)   (shape)   (maps ((0) ((a a) (b b) (x x) (y y))))@@ -917,7 +590,7 @@       (recv         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul y x))))))-  (label 23)+  (label 15)   (unrealized (0 2))   (origs)   (comment "2 in cohort - 2 not yet seen"))@@ -949,8 +622,8 @@       (send         (enc (enc (exp (gen) x) (exp (gen) y) (privk a))           (exp (gen) (mul x y))))))-  (label 24)-  (parent 23)+  (label 16)+  (parent 15)   (unrealized)   (shape)   (maps ((0) ((a a) (b b) (y y) (x x))))@@ -980,8 +653,8 @@         (cat (exp (gen) y)           (enc (enc (exp (gen) y) (exp (gen) y-0) (privk a))             (exp (gen) (mul y y-0)))))))-  (label 25)-  (parent 23)+  (label 17)+  (parent 15)   (unrealized)   (shape)   (maps ((0) ((a a) (b b) (y y-0) (x y))))
tst/station2.tst view
@@ -1,6 +1,6 @@ (herald "Station-to-station protocol" (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/station2.scm")  (defprotocol station-to-station diffie-hellman
+ tst/station_newhope.scm view
@@ -0,0 +1,105 @@+; Station-to-station++; This is an authenticated form of a Diffie-Hellman key exchange.++; The file contains two different models of the station-to-station+; protocol.  In the first, an assumption is made that *any* initiator+; or responder properly picks a fresh random exponent and does not+; allow it to be obtained by the adversary.++; In the second, we do not include this assumption, and as a result,+; less can be guaranteed.++(herald "Station-to-station protocol" (algebra diffie-hellman))++(defmacro (nh_public x1)+  (exp (gen) x1))+(defmacro (nh_share x1 x2)+  (hash "share" (exp (gen) (mul x1 x2)) x1))+(defmacro (nh_hint x1 x2)+  (hash "hint" (nh_share x1 x2)))+(defmacro (nh_key_hint x1 x2 h)+  (hash "key" (nh_share x1 x2) h))+(defmacro (nh_key x1 x2)+  (nh_key_hint x1 x2 (nh_hint x1 x2)))++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace+     (send (nh_public xi))+     (recv (cat (nh_public xr) hint+		(enc (enc (nh_public xr) (nh_public xi) hint (privk r)) (nh_key_hint xi xr hint))))+     (send (cat (enc (enc (nh_public xi) (nh_public xr) hint (privk i)) (nh_key_hint xr xi hint))+		(enc (enc (nh_public xi) (nh_public xr) hint (privk i)) (nh_key_hint xi xr hint))))+     )+    )+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace+     (recv (nh_public xi))+     (send (cat (nh_public xr) (nh_hint xr xi)+		(enc (enc (nh_public xr) (nh_public xi) (nh_hint xr xi) (privk r)) (nh_key xr xi))+		(enc (enc (nh_public xr) (nh_public xi) (nh_hint xr xi) (privk r)) (nh_key_hint xi xr (nh_hint xr xi)))))+     (recv (enc (enc (nh_public xi) (nh_public xr) (nh_hint xr xi) (privk i)) (nh_key xr xi))))+    )+  )++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand init 3 (i i) (r r) (xi xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+)++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (non-orig (privk i) (privk r))+  (absent (xr xi))+  (uniq-gen xr)+  )++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+)++(defprotocol station-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace+     (send (nh_public xi))+     (recv (cat (nh_public xr) hint+		(enc (enc "resp" (nh_public xr) (nh_public xi) (privk r)) (nh_key_hint xi xr hint))))+     (send (cat (enc (enc (nh_public xi) (nh_public xr) (privk i)) (nh_key_hint xr xi hint))+		(enc (enc (nh_public xi) (nh_public xr) (privk i)) (nh_key_hint xi xr hint))))+     )+    )+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace+     (recv (nh_public xi))+     (send (cat (nh_public xr) (nh_hint xr xi)+		(enc (enc "resp" (nh_public xr) (nh_public xi) (privk r)) (nh_key xr xi))+		(enc (enc "resp" (nh_public xr) (nh_public xi) (privk r)) (nh_key_hint xi xr (nh_hint xr xi)))))+     (recv (enc (enc (nh_public xi) (nh_public xr) (privk i)) (nh_key xr xi))))+    )+  )++(defskeleton station-nohint+  (vars (i r name) (xi rndx))+  (defstrand init 3 (i i) (r r) (xi xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+)++(defskeleton station-nohint+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (non-orig (privk i) (privk r))+  (absent (xr xi))+  (uniq-gen xr)+)
+ tst/station_newhope.tst view
@@ -0,0 +1,5683 @@+(herald "Station-to-station protocol" (algebra diffie-hellman))++(comment "CPSA 3.6.7")+(comment "All input read from tst/station_newhope.scm")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace (send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace (recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi)) xr))))))))++(defskeleton station-to-station+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (hint mesg) (i r r-0 name) (xi xi-0 rndx))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi-0) (xr xi))+  (defstrand init 3 (hint hint) (i r) (r r-0) (xi xi) (xr xi-0))+  (precedes ((0 0) (1 1)) ((1 2) (0 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi-0)+  (operation encryption-test (added-strand init 3)+    (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))+      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0) hint))+    (0 1))+  (traces+    ((send (exp (gen) xi-0))+      (recv+        (cat (exp (gen) xi) hint+          (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi-0) (exp (gen) xi) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))+          (enc (enc (exp (gen) xi-0) (exp (gen) xi) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint)))))+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xi-0) hint+          (enc (enc (exp (gen) xi-0) (exp (gen) xi) hint (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)+              hint))+          (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)+              hint))))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xi xi-0) (xr xi) (hint hint))))+  (origs))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (i i)+    (r r) (xi xi) (xr xr))+  (defstrand resp 2 (r r) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test (added-strand resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xi)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+        (privk r))+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 1))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xi) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 2)+  (parent 0)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((i i) (r r) (xi xi) (xr xr)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (origs))++(defskeleton station-to-station+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (0 1))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint)))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 3)+  (parent 0)+  (unrealized (0 1) (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (1 0))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint)))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 4)+  (parent 3)+  (unrealized (0 1) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))+    (hash "share" (exp (gen) (mul xi xr)) xi) (2 0))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint)))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))+      (send (cat "share" (exp (gen) (mul xi xr)) xi))))+  (label 5)+  (parent 4)+  (unrealized (0 1) (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace (send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace (recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi)) xr))))))))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))+  (label 6)+  (unrealized (0 2))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (i i)+    (r r-0) (xi xi) (xr xr))+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand init 3)+    (enc+      (enc (exp (gen) xi) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xi) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 7)+  (parent 6)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xr) (xi xi))))+  (origs))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+    (enc+      (enc (exp (gen) xi) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (label 8)+  (parent 6)+  (unrealized (0 2) (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (1 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (label 9)+  (parent 8)+  (unrealized (0 2) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xi)) xr))+  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xi)) xr))+    (hash "share" (exp (gen) (mul xr xi)) xr) (2 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xi)) xr))+      (send (cat "share" (exp (gen) (mul xr xi)) xr))))+  (label 10)+  (parent 9)+  (unrealized (0 2) (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace (send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace (recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi)) xr))))))))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))+  (label 11)+  (unrealized (0 2))+  (origs)+  (comment "5 in cohort - 5 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (i i)+    (r r-0) (xi xi) (xr xr))+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand init 3)+    (enc+      (enc (exp (gen) xi) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xi) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 12)+  (parent 11)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xr) (xi xi))))+  (origs))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (precedes ((1 0) (0 0)) ((1 2) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand init 3)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 13)+  (parent 11)+  (unrealized (1 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (r name) (xr rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (non-orig (privk r))+  (uniq-gen xr)+  (operation encryption-test (displaced 1 0 resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))))+  (label 14)+  (parent 11)+  (unrealized (0 0))+  (origs)+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (precedes ((1 1) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 15)+  (parent 11)+  (unrealized (0 0) (1 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+    (enc+      (enc (exp (gen) xi) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+        (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (label 16)+  (parent 11)+  (unrealized (0 2) (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (displaced 2 0 resp 2)+    (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 17)+  (parent 13)+  (unrealized (1 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 r-1 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-1) (xr xr) (xi xr))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand resp 2)+    (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 18)+  (parent 13)+  (unrealized (1 1))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (deflistener (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))+    (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))+      (send (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+  (label 19)+  (parent 13)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (r name) (xi rndx))+  (defstrand resp 3 (i r) (r r) (xr xi) (xi xi))+  (defstrand init 1 (xi xi))+  (precedes ((1 0) (0 0)))+  (non-orig (privk r))+  (uniq-gen xi)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (0 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((send (exp (gen) xi))))+  (label 20)+  (parent 14)+  (unrealized)+  (shape)+  (maps ((0) ((i r) (r r) (xr xi) (xi xi))))+  (origs))++(defskeleton station-to-station+  (vars (r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((1 1) (0 0)))+  (non-orig (privk r))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (0 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 21)+  (parent 14)+  (unrealized)+  (shape)+  (maps ((0) ((i r) (r r) (xr xr) (xi xr))))+  (origs))++(defskeleton station-to-station+  (vars (r name) (xr rndx) (w expt))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) (mul xr (rec w))) w))+  (precedes ((1 1) (0 0)))+  (non-orig (privk r))+  (uniq-gen xr)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)+    (0 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (exp (gen) (mul xr (rec w))) w))+      (send (cat (exp (gen) (mul xr (rec w))) w))))+  (label 22)+  (parent 14)+  (unrealized (1 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))+  (defstrand resp 2 (r i) (xr xi) (xi xi))+  (defstrand init 1 (xi xi))+  (precedes ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (1 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi)))))))+    ((send (exp (gen) xi))))+  (label 23)+  (parent 15)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xi) (xi xi))))+  (origs))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) xr-0) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 24)+  (parent 15)+  (unrealized (0 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((1 1) (0 2)) ((2 1) (0 0)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 25)+  (parent 15)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xr) (xi xr))))+  (origs))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (w expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) (mul xr (rec w))) w))+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)+    (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) (mul xr (rec w))) w))+      (send (cat (exp (gen) (mul xr (rec w))) w))))+  (label 26)+  (parent 15)+  (unrealized (0 0) (2 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (1 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (label 27)+  (parent 16)+  (unrealized (0 2) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r) (xi xr) (xr xr))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-0))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 28)+  (parent 17)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xr) (xi xr))))+  (origs))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xr))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))+    ((2 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-0))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 29)+  (parent 17)+  (seen 32)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))+    ((2 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-0))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 30)+  (parent 17)+  (unrealized (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r) (xi xr) (xr xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xr))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))+    ((2 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (displaced 3 0 resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-1))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 31)+  (parent 18)+  (seen 28)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xr))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (displaced 3 2 resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-1))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 32)+  (parent 18)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xr) (xi xr))))+  (origs))++(defskeleton station-to-station+  (vars (i r r-0 r-1 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-1) (xr xr) (xi xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xr))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)) ((1 2) (0 2))+    ((2 1) (1 1)) ((3 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand resp 2)+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-0))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))))+  (label 33)+  (parent 18)+  (seen 32)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 r-1 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-1) (xr xr) (xi xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)) ((1 2) (0 2))+    ((2 1) (1 1)) ((3 1) (1 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (enc+      (enc (exp (gen) xr) (exp (gen) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+        (privk r-0))+      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 34)+  (parent 18)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (deflistener (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((1 0) (0 0)) ((1 0) (3 0)) ((1 2) (0 2)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))+      (send (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 35)+  (parent 19)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (r name) (xr rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (gen) xr))+  (precedes ((1 1) (0 0)))+  (non-orig (privk r))+  (uniq-gen xr)+  (precur (1 0))+  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (gen) xr)) (send (cat (gen) xr))))+  (label 36)+  (parent 22)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (r name) (xr xi rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))+  (non-orig (privk r))+  (precur (1 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))))+  (label 37)+  (parent 22)+  (unrealized (0 0) (1 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))+  (non-orig (privk r))+  (precur (1 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))+  (label 38)+  (parent 22)+  (unrealized (0 0) (1 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))+  (defstrand resp 2 (r i) (xr xi) (xi xi))+  (defstrand init 1 (xi xi))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (0 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi)))))))+    ((send (exp (gen) xi))))+  (label 39)+  (parent 24)+  (seen 23)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (0 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 40)+  (parent 24)+  (seen 25)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (w expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) (mul xr (rec w))) w))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)+    (0 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) (mul xr (rec w))) w))+      (send (cat (exp (gen) (mul xr (rec w))) w))))+  (label 41)+  (parent 24)+  (unrealized (2 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (gen) xr))+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (precur (2 0))+  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (gen) xr)) (send (cat (gen) xr))))+  (label 42)+  (parent 26)+  (unrealized (0 0) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))))+  (label 43)+  (parent 26)+  (unrealized (0 0) (1 0) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (displaced 3 0 resp 2) (exp (gen) xr-0) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one)))))+  (label 44)+  (parent 26)+  (unrealized (0 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))+  (label 45)+  (parent 26)+  (unrealized (0 0) (1 0) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xi)) xr))+  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xi)) xr))+    (hash "share" (exp (gen) (mul xr xi)) xr) (2 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xi)) xr))+      (send (cat "share" (exp (gen) (mul xr xi)) xr))))+  (label 46)+  (parent 27)+  (unrealized (0 2) (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((1 2) (0 2))+    ((2 1) (1 1)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 47)+  (parent 30)+  (unrealized (3 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 r-1 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-1) (xr xr) (xi xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0)) ((1 2) (0 2))+    ((2 1) (1 1)) ((3 1) (1 1)) ((4 1) (3 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+  (label 48)+  (parent 34)+  (unrealized (4 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (r name) (xi rndx))+  (defstrand resp 3 (i r) (r r) (xr xi) (xi xi))+  (deflistener (cat (exp (gen) xi) (one)))+  (defstrand init 1 (xi xi))+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))+  (non-orig (privk r))+  (precur (1 0))+  (uniq-gen xi)+  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (1 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (cat (exp (gen) xi) (one)))+      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))+  (label 49)+  (parent 37)+  (seen 20)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (r name) (xr xi rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (deflistener xr)+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)))+  (non-orig (privk r))+  (precur (1 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))) ((recv xr) (send xr)))+  (label 50)+  (parent 37)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))+  (non-orig (privk r))+  (precur (1 0))+  (uniq-gen xr)+  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 51)+  (parent 38)+  (seen 21)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (deflistener xr)+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (1 0)))+  (non-orig (privk r))+  (precur (1 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (1 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk r))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv xr) (send xr)))+  (label 52)+  (parent 38)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (gen) xr))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (precur (2 0))+  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (gen) xr)) (send (cat (gen) xr))))+  (label 53)+  (parent 41)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))))+  (label 54)+  (parent 41)+  (unrealized (0 0) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))+  (label 55)+  (parent 41)+  (unrealized (0 0) (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))+  (defstrand resp 2 (r i) (xr xi) (xi xi))+  (deflistener (cat (exp (gen) xi) (one)))+  (defstrand init 1 (xi xi))+  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0)) ((3 0) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xi)+  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (2 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi)))))))+    ((recv (cat (exp (gen) xi) (one)))+      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))+  (label 56)+  (parent 43)+  (seen 23)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (deflistener xr)+  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))) ((recv xr) (send xr)))+  (label 57)+  (parent 43)+  (unrealized (0 0) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))+  (defstrand resp 2 (r i) (xr xi) (xi xi))+  (deflistener (cat (exp (gen) xi) (one)))+  (defstrand init 1 (xi xi))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xi)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (0 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi)))))))+    ((recv (cat (exp (gen) xi) (one)))+      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))+  (label 58)+  (parent 44)+  (seen 39)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (0 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 59)+  (parent 44)+  (seen 40)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx) (w expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (exp (gen) (mul xr (rec w))) w))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)+    (0 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (exp (gen) (mul xr (rec w))) w))+      (send (cat (exp (gen) (mul xr (rec w))) w))))+  (label 60)+  (parent 44)+  (unrealized (3 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 61)+  (parent 45)+  (seen 25)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (deflistener xr)+  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv xr) (send xr)))+  (label 62)+  (parent 45)+  (unrealized (0 0) (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (4 0)) ((1 2) (0 2))+    ((2 1) (1 1)) ((3 1) (2 0)) ((4 1) (3 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 63)+  (parent 47)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r r-0 r-1 name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)+    (r r-0) (xi xr) (xr xr))+  (defstrand resp 2 (r r-1) (xr xr) (xi xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 2) (0 2))+    ((2 1) (1 1)) ((3 1) (1 1)) ((4 1) (3 0)) ((5 1) (4 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))+    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((send (exp (gen) xr))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (send+        (cat+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r-1))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))+      (send (cat "share" (exp (gen) (mul xr xr)) xr))))+  (label 64)+  (parent 48)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))+  (defstrand resp 2 (r i) (xr xi) (xi xi))+  (deflistener (cat (exp (gen) xi) (one)))+  (defstrand init 1 (xi xi))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xi)+  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (2 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi)))))))+    ((recv (cat (exp (gen) xi) (one)))+      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))+  (label 65)+  (parent 54)+  (seen 39)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (deflistener xr)+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0))+    ((4 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))) ((recv xr) (send xr)))+  (label 66)+  (parent 54)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 67)+  (parent 55)+  (seen 40)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (deflistener xr)+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 1) (2 0))+    ((4 1) (2 0)))+  (non-orig (privk i) (privk r))+  (precur (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (2 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv xr) (send xr)))+  (label 68)+  (parent 55)+  (unrealized (4 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (gen) xr))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (gen) xr)) (send (cat (gen) xr))))+  (label 69)+  (parent 60)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+    ((4 0) (3 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand init 1) (exp (gen) xi) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))))+  (label 70)+  (parent 60)+  (unrealized (0 0) (3 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+    ((4 1) (3 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))+  (label 71)+  (parent 60)+  (unrealized (0 0) (3 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))+  (defstrand resp 2 (r i) (xr xi) (xi xi))+  (deflistener (cat (exp (gen) xi) (one)))+  (deflistener (cat (exp (gen) xi) (one)))+  (defstrand init 1 (xi xi))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+    ((4 0) (3 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xi)+  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (3 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi))))))+      (recv+        (enc+          (enc (exp (gen) xi) (exp (gen) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xi)+          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))+          (enc+            (enc (exp (gen) xi) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xi)) xi)))))))+    ((recv (cat (exp (gen) xi) (one)))+      (send (cat (exp (gen) xi) (one))))+    ((recv (cat (exp (gen) xi) (one)))+      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))+  (label 72)+  (parent 70)+  (seen 65)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r name) (xr xi rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))+  (defstrand init 1 (xi xi))+  (deflistener xr)+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+    ((4 0) (3 0)) ((5 1) (3 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))+      (send (cat (exp (gen) xi) (mul xr (rec xi)))))+    ((send (exp (gen) xi))) ((recv xr) (send xr)))+  (label 73)+  (parent 70)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (exp (gen) xr) (one)))+  (defstrand resp 2 (r r-0) (xr xr) (xi xi))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+    ((4 1) (3 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xi)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 74)+  (parent 71)+  (seen 67)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton station-to-station+  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))+  (defstrand resp 2 (r i) (xr xr) (xi xr))+  (deflistener (cat (exp (gen) xr) (one)))+  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))+  (deflistener xr)+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))+    ((4 1) (3 0)) ((5 1) (3 0)))+  (non-orig (privk i) (privk r))+  (precur (3 0) (2 0))+  (uniq-gen xr)+  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (3 0))+  (traces+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr))))))+      (recv+        (enc+          (enc (exp (gen) xr) (exp (gen) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+            (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))+    ((recv (exp (gen) xr))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))+          (enc+            (enc (exp (gen) xr) (exp (gen) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))+              (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xr)) xr)))))))+    ((recv (cat (exp (gen) xr) (one)))+      (send (cat (exp (gen) xr) (one))))+    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))+      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr-0)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))+          (enc+            (enc (exp (gen) xr-0) (exp (gen) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))+              (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))+    ((recv xr) (send xr)))+  (label 75)+  (parent 71)+  (unrealized (5 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol station-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace (send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace (recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi)) xr))))))))++(defskeleton station-nohint+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (label 76)+  (unrealized (0 1))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-nohint+  (vars (i r name) (xr xi rndx))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (i i)+    (r r) (xi xi) (xr xr))+  (defstrand resp 2 (r r) (xr xr) (xi xi))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test (added-strand resp 2)+    (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 1))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr)))))))+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))))+  (label 77)+  (parent 76)+  (unrealized)+  (shape)+  (maps+    ((0)+      ((i i) (r r) (xi xi) (xr xr)+        (hint+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (origs))++(defskeleton station-nohint+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (0 1))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint)))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 78)+  (parent 76)+  (unrealized (0 1) (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-nohint+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (1 0))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint)))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))+  (label 79)+  (parent 78)+  (unrealized (0 1) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-nohint+  (vars (hint mesg) (i r name) (xi rndx) (xr expt))+  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))+  (non-orig (privk i) (privk r))+  (uniq-gen xi)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))+    (hash "share" (exp (gen) (mul xi xr)) xi) (2 0))+  (traces+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint)))))+    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))+      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))+    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))+      (send (cat "share" (exp (gen) (mul xi xr)) xi))))+  (label 80)+  (parent 79)+  (unrealized (0 1) (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol station-nohint diffie-hellman+  (defrole init+    (vars (xi rndx) (xr expt) (i r name) (hint mesg))+    (trace (send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr) hint+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              hint))))))+  (defrole resp+    (vars (xr rndx) (xi expt) (i r name))+    (trace (recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint"+              (hash "share" (exp (gen) (mul xr xi)) xr))))))))++(defskeleton station-nohint+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))+  (label 81)+  (unrealized (0 2))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-nohint+  (vars (i r r-0 name) (xi xr rndx))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (defstrand init 3+    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (i i)+    (r r-0) (xi xi) (xr xr))+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test (added-strand init 3)+    (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))+    ((send (exp (gen) xi))+      (recv+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r-0))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))+      (send+        (cat+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))+          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xi xr)) xr))))))))+  (label 82)+  (parent 81)+  (unrealized)+  (shape)+  (maps ((0) ((i i) (r r) (xr xr) (xi xi))))+  (origs))++(defskeleton station-nohint+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+    (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 2))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (label 83)+  (parent 81)+  (unrealized (0 2) (1 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-nohint+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener+      (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (1 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+  (label 84)+  (parent 83)+  (unrealized (0 2) (2 0))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-nohint+  (vars (i r name) (xr rndx) (xi expt))+  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))+  (deflistener+    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener+    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+  (deflistener (cat "share" (exp (gen) (mul xr xi)) xr))+  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))+  (absent (xr xi))+  (non-orig (privk i) (privk r))+  (uniq-gen xr)+  (operation encryption-test+    (added-listener (cat "share" (exp (gen) (mul xr xi)) xr))+    (hash "share" (exp (gen) (mul xr xi)) xr) (2 0))+  (traces+    ((recv (exp (gen) xi))+      (send+        (cat (exp (gen) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))+            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)+              (hash "hint"+                (hash "share" (exp (gen) (mul xr xi)) xr))))))+      (recv+        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))+          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))+    ((recv+       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv+       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))+      (send+        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)+          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))+    ((recv (cat "share" (exp (gen) (mul xr xi)) xr))+      (send (cat "share" (exp (gen) (mul xr xi)) xr))))+  (label 85)+  (parent 84)+  (unrealized (0 2) (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/station_nobase.scm view
@@ -0,0 +1,38 @@+(herald "Station-to-station protocol no base vars" (algebra diffie-hellman)+; (limit 1)+)++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (x rndx) (h expt) (a b name))+    (trace+     (send (exp (gen) x))+     (recv (cat (exp (gen) h)+		(enc (enc (exp (gen) h) (exp (gen) x) (privk b))+		     (exp (exp (gen) h) x))))+     (send (enc (enc (exp (gen) x) (exp (gen) h) (privk a))+		(exp (exp (gen) h) x))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (h expt) (a b name))+    (trace+     (recv (exp (gen) h))+     (send (cat (exp (gen) y)+		(enc (enc (exp (gen) y) (exp (gen) h) (privk b))+		     (exp (exp (gen) h) y))))+     (recv (enc (enc (exp (gen) h) (exp (gen) y) (privk a))+		(exp (exp (gen) h) y))))+    (uniq-gen y))+)++(defskeleton station-to-station+  (vars (a b name))+  (defstrand init 3 (a a) (b b))+  (non-orig (privk b) (privk a))+)++(defskeleton station-to-station+  (vars (a b name))+  (defstrand resp 3 (a a) (b b))+  (non-orig (privk a) (privk b))+)
+ tst/station_nobase.tst view
@@ -0,0 +1,446 @@+(herald "Station-to-station protocol no base vars"+  (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/station_nobase.scm")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (x rndx) (h expt) (a b name))+    (trace (send (exp (gen) x))+      (recv+        (cat (exp (gen) h)+          (enc (enc (exp (gen) h) (exp (gen) x) (privk b))+            (exp (gen) (mul x h)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) h) (privk a))+          (exp (gen) (mul x h)))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (h expt) (a b name))+    (trace (recv (exp (gen) h))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) h) (privk b))+            (exp (gen) (mul y h)))))+      (recv+        (enc (enc (exp (gen) h) (exp (gen) y) (privk a))+          (exp (gen) (mul y h)))))+    (uniq-gen y)+    (absent (y (exp (gen) h)))))++(defskeleton station-to-station+  (vars (a b name) (x rndx) (h expt))+  (defstrand init 3 (a a) (b b) (x x) (h h))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (traces+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) h)+          (enc (enc (exp (gen) h) (exp (gen) x) (privk b))+            (exp (gen) (mul x h)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) h) (privk a))+          (exp (gen) (mul x h))))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (h x))+  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))+  (precedes ((0 0) (1 1)) ((1 2) (0 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation encryption-test (added-strand init 3)+    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0))))))+  (label 1)+  (parent 0)+  (unrealized (1 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (a b name) (y x rndx))+  (defstrand init 3 (a a) (b b) (x x) (h y))+  (defstrand resp 2 (b b) (y y) (h x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (operation encryption-test (added-strand resp 2)+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+  (traces+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x)))))+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))))+  (label 2)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (x x) (h y))))+  (origs))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (h x))+  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))+  (deflistener (exp (gen) (mul x x-0)))+  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+      (exp (gen) (mul x x-0))) (1 1))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0)))))+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))+  (label 3)+  (parent 1)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (h x))+  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))+  (deflistener (exp (gen) (mul x x-0)))+  (deflistener (cat (exp (gen) x) x-0))+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))+    (exp (gen) (mul x x-0)) (2 0))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0)))))+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))+  (label 4)+  (parent 3)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (h x))+  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))+  (deflistener (exp (gen) (mul x x-0)))+  (deflistener (cat (exp (gen) x-0) x))+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))+    (exp (gen) (mul x x-0)) (2 0))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0)))))+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))+  (label 5)+  (parent 3)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (x rndx) (h expt) (a b name))+    (trace (send (exp (gen) x))+      (recv+        (cat (exp (gen) h)+          (enc (enc (exp (gen) h) (exp (gen) x) (privk b))+            (exp (gen) (mul x h)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) h) (privk a))+          (exp (gen) (mul x h)))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (h expt) (a b name))+    (trace (recv (exp (gen) h))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) h) (privk b))+            (exp (gen) (mul y h)))))+      (recv+        (enc (enc (exp (gen) h) (exp (gen) y) (privk a))+          (exp (gen) (mul y h)))))+    (uniq-gen y)+    (absent (y (exp (gen) h)))))++(defskeleton station-to-station+  (vars (a b name) (y rndx) (h expt))+  (defstrand resp 3 (a a) (b b) (y y) (h h))+  (absent (y (exp (gen) h)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (traces+    ((recv (exp (gen) h))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) h) (privk b))+            (exp (gen) (mul y h)))))+      (recv+        (enc (enc (exp (gen) h) (exp (gen) y) (privk a))+          (exp (gen) (mul y h))))))+  (label 6)+  (unrealized (0 2))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (h x))+  (defstrand init 3 (a a) (b b-0) (x x) (h y))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation encryption-test (added-strand init 3)+    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y))))))+  (label 7)+  (parent 6)+  (unrealized (1 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b name) (y x rndx))+  (defstrand resp 3 (a a) (b b) (y y) (h x))+  (defstrand init 3 (a a) (b b) (x x) (h y))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+      (exp (gen) (mul y x))) (1 1))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x))))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (y y) (h x))))+  (origs))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (h x))+  (defstrand init 3 (a a) (b b-0) (x x) (h y))+  (deflistener (exp (gen) (mul x y)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation encryption-test (added-listener (exp (gen) (mul x y)))+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+      (exp (gen) (mul x y))) (1 1))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+  (label 9)+  (parent 7)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (h x))+  (defstrand init 3 (a a) (b b-0) (x x) (h y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 10)+  (parent 9)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (h x))+  (defstrand init 3 (a a) (b b-0) (x x) (h y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 11)+  (parent 9)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
+ tst/stationbase.scm view
@@ -0,0 +1,34 @@+(herald "Station-to-station protocol" (algebra diffie-hellman)+; (limit 1)+)++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (x rndx) (y expt) (a b name))+    (trace+     (send (exp (gen) x))+     (recv (cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen)+x) (privk b)) (exp (gen) (mul x y)))))+     (send (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (x expt) (a b name))+    (trace+     (recv (exp (gen) x))+     (send (cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen)+x) (privk b)) (exp (gen) (mul x y)))))+     (recv (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))+    (uniq-gen y))+)++(defskeleton station-to-station+  (vars (a b name))+  (defstrand init 3 (a a) (b b))+  (non-orig (privk b) (privk a))+)++(defskeleton station-to-station+  (vars (a b name))+  (defstrand resp 3 (a a) (b b))+  (non-orig (privk a) (privk b))+)
+ tst/stationbase.tst view
@@ -0,0 +1,445 @@+(herald "Station-to-station protocol" (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/stationbase.scm")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (x rndx) (y expt) (a b name))+    (trace (send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (x expt) (a b name))+    (trace (recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x)))))+    (uniq-gen y)+    (absent (y (exp (gen) x)))))++(defskeleton station-to-station+  (vars (a b name) (x rndx) (y expt))+  (defstrand init 3 (a a) (b b) (x x) (y y))+  (non-orig (privk a) (privk b))+  (uniq-gen x)+  (traces+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y))))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (y x))+  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))+  (precedes ((0 0) (1 1)) ((1 2) (0 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation encryption-test (added-strand init 3)+    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0))))))+  (label 1)+  (parent 0)+  (unrealized (1 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (a b name) (y x rndx))+  (defstrand init 3 (a a) (b b) (x x) (y y))+  (defstrand resp 2 (b b) (y y) (x x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (operation encryption-test (added-strand resp 2)+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))+  (traces+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x)))))+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))))+  (label 2)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (x x) (y y))))+  (origs))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (y x))+  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))+  (deflistener (exp (gen) (mul x x-0)))+  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))+    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+      (exp (gen) (mul x x-0))) (1 1))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0)))))+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))+  (label 3)+  (parent 1)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (y x))+  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))+  (deflistener (exp (gen) (mul x x-0)))+  (deflistener (cat (exp (gen) x) x-0))+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))+    (exp (gen) (mul x x-0)) (2 0))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0)))))+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))+  (label 4)+  (parent 3)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x x-0 rndx))+  (defstrand init 3 (a a) (b b) (x x-0) (y x))+  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))+  (deflistener (exp (gen) (mul x x-0)))+  (deflistener (cat (exp (gen) x-0) x))+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (non-orig (privk a) (privk b))+  (uniq-gen x x-0)+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))+    (exp (gen) (mul x x-0)) (2 0))+  (traces+    ((send (exp (gen) x-0))+      (recv+        (cat (exp (gen) x)+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))+          (exp (gen) (mul x x-0)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) x-0)+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x x-0)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))+          (exp (gen) (mul x x-0)))))+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))+  (label 5)+  (parent 3)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol station-to-station diffie-hellman+  (defrole init+    (vars (x rndx) (y expt) (a b name))+    (trace (send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    (uniq-gen x))+  (defrole resp+    (vars (y rndx) (x expt) (a b name))+    (trace (recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x)))))+    (uniq-gen y)+    (absent (y (exp (gen) x)))))++(defskeleton station-to-station+  (vars (a b name) (y rndx) (x expt))+  (defstrand resp 3 (a a) (b b) (y y) (x x))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y)+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x))))))+  (label 6)+  (unrealized (0 2))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (x x))+  (defstrand init 3 (a a) (b b-0) (x x) (y y))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation encryption-test (added-strand init 3)+    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y))))))+  (label 7)+  (parent 6)+  (unrealized (1 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b name) (y x rndx))+  (defstrand resp 3 (a a) (b b) (y y) (x x))+  (defstrand init 3 (a a) (b b) (x x) (y y))+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen y x)+  (operation encryption-test (displaced 2 0 resp 2)+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+      (exp (gen) (mul y x))) (1 1))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul y x)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul y x))))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (y y) (x x))))+  (origs))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (x x))+  (defstrand init 3 (a a) (b b-0) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation encryption-test (added-listener (exp (gen) (mul x y)))+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+      (exp (gen) (mul x y))) (1 1))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))+  (label 9)+  (parent 7)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (x x))+  (defstrand init 3 (a a) (b b-0) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) x) y))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) x) y))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))+  (label 10)+  (parent 9)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(defskeleton station-to-station+  (vars (a b b-0 name) (x y rndx))+  (defstrand resp 3 (a a) (b b) (y y) (x x))+  (defstrand init 3 (a a) (b b-0) (x x) (y y))+  (deflistener (exp (gen) (mul x y)))+  (deflistener (cat (exp (gen) y) x))+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))+    ((3 1) (2 0)))+  (absent (y (exp (gen) x)))+  (non-orig (privk a) (privk b))+  (uniq-gen x y)+  (operation nonce-test (added-listener (cat (exp (gen) y) x))+    (exp (gen) (mul x y)) (2 0))+  (traces+    ((recv (exp (gen) x))+      (send+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))+            (exp (gen) (mul x y)))))+      (recv+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((send (exp (gen) x))+      (recv+        (cat (exp (gen) y)+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))+            (exp (gen) (mul x y)))))+      (send+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))+          (exp (gen) (mul x y)))))+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))+  (label 11)+  (parent 9)+  (unrealized (3 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/subsort_test.tst view
@@ -2,7 +2,7 @@   (comment "First, third, and fourth skeletons should have a shape,"     "second should be dead.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/subsort_test.scm")  (defprotocol subsorttest basic
+ tst/tag_test.scm view
@@ -0,0 +1,48 @@+(herald "Tag Test File"+	(algebra diffie-hellman)+   (bound 12))++(defprotocol test diffie-hellman+  (defrole rtag+    (vars (a name) (t tag))+    (trace+     (send (enc "hello world" (ltk a a)))+     (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole rtag_mesg+    (vars (a name) (t mesg))+    (trace+     (send (enc "hello world" (ltk a a)))+     (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole stag+    (vars (k skey) (t tag))+    (trace+     (send (enc "init" t k))+     (recv (enc t k)))+    (non-orig k))+)++;; Should force t to be unified with "hello world"+(defskeleton test+  (vars )+  (defstrand rtag 2 )+)++;; Now t could be a pair ("init" t) with an stag instance, or "hello world".+(defskeleton test+  (vars )+  (defstrand rtag_mesg 2 )+  )++;; Demonstrates that t does not have to be acquired+(defskeleton test+  (vars )+  (defstrand stag 2 )+  )++(defskeleton test+  (vars )+  (defstrand rtag_mesg 2 )+  (uniq-orig "hello world")+  )
+ tst/tag_test.tst view
@@ -0,0 +1,227 @@+(herald "Tag Test File" (algebra diffie-hellman) (bound 12))++(comment "CPSA 3.6.8")+(comment "All input read from tst/tag_test.scm")++(defprotocol test diffie-hellman+  (defrole rtag+    (vars (a name) (t tag))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole rtag_mesg+    (vars (a name) (t mesg))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole stag+    (vars (k skey) (t tag))+    (trace (send (enc "init" t k)) (recv (enc t k)))+    (non-orig k)))++(defskeleton test+  (vars (a name) (t tag))+  (defstrand rtag 2 (a a) (t t))+  (non-orig (ltk a a))+  (traces+    ((send (enc "hello world" (ltk a a))) (recv (enc t (ltk a a)))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton test+  (vars (a name))+  (defstrand rtag 2 (a a) (t "hello world"))+  (non-orig (ltk a a))+  (operation encryption-test (displaced 1 0 rtag_mesg 1)+    (enc "hello world" (ltk a a)) (0 1))+  (traces+    ((send (enc "hello world" (ltk a a)))+      (recv (enc "hello world" (ltk a a)))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (t "hello world"))))+  (origs))++(comment "Nothing left to do")++(defprotocol test diffie-hellman+  (defrole rtag+    (vars (a name) (t tag))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole rtag_mesg+    (vars (a name) (t mesg))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole stag+    (vars (k skey) (t tag))+    (trace (send (enc "init" t k)) (recv (enc t k)))+    (non-orig k)))++(defskeleton test+  (vars (t mesg) (a name))+  (defstrand rtag_mesg 2 (t t) (a a))+  (non-orig (ltk a a))+  (traces+    ((send (enc "hello world" (ltk a a))) (recv (enc t (ltk a a)))))+  (label 2)+  (unrealized (0 1))+  (origs)+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton test+  (vars (a name))+  (defstrand rtag_mesg 2 (t "hello world") (a a))+  (non-orig (ltk a a))+  (operation encryption-test (displaced 1 0 rtag_mesg 1)+    (enc "hello world" (ltk a a)) (0 1))+  (traces+    ((send (enc "hello world" (ltk a a)))+      (recv (enc "hello world" (ltk a a)))))+  (label 3)+  (parent 2)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (t "hello world"))))+  (origs))++(defskeleton test+  (vars (a name) (t tag))+  (defstrand rtag_mesg 2 (t (cat "init" t)) (a a))+  (defstrand stag 1 (k (ltk a a)) (t t))+  (precedes ((1 0) (0 1)))+  (non-orig (ltk a a))+  (operation encryption-test (added-strand stag 1)+    (enc "init" t (ltk a a)) (0 1))+  (traces+    ((send (enc "hello world" (ltk a a)))+      (recv (enc "init" t (ltk a a))))+    ((send (enc "init" t (ltk a a)))))+  (label 4)+  (parent 2)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (t (cat "init" t)))))+  (origs))++(comment "Nothing left to do")++(defprotocol test diffie-hellman+  (defrole rtag+    (vars (a name) (t tag))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole rtag_mesg+    (vars (a name) (t mesg))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole stag+    (vars (k skey) (t tag))+    (trace (send (enc "init" t k)) (recv (enc t k)))+    (non-orig k)))++(defskeleton test+  (vars (k skey) (t tag))+  (defstrand stag 2 (k k) (t t))+  (non-orig k)+  (traces ((send (enc "init" t k)) (recv (enc t k))))+  (label 5)+  (unrealized (0 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton test+  (vars (a name))+  (defstrand stag 2 (k (ltk a a)) (t "hello world"))+  (defstrand rtag_mesg 1 (a a))+  (precedes ((1 0) (0 1)))+  (non-orig (ltk a a))+  (operation encryption-test (added-strand rtag_mesg 1)+    (enc "hello world" (ltk a a)) (0 1))+  (traces+    ((send (enc "init" "hello world" (ltk a a)))+      (recv (enc "hello world" (ltk a a))))+    ((send (enc "hello world" (ltk a a)))))+  (label 6)+  (parent 5)+  (unrealized)+  (shape)+  (maps ((0) ((k (ltk a a)) (t "hello world"))))+  (origs))++(comment "Nothing left to do")++(defprotocol test diffie-hellman+  (defrole rtag+    (vars (a name) (t tag))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole rtag_mesg+    (vars (a name) (t mesg))+    (trace (send (enc "hello world" (ltk a a)))+      (recv (enc t (ltk a a))))+    (non-orig (ltk a a)))+  (defrole stag+    (vars (k skey) (t tag))+    (trace (send (enc "init" t k)) (recv (enc t k)))+    (non-orig k)))++(defskeleton test+  (vars (t mesg) (a name))+  (defstrand rtag_mesg 2 (t t) (a a))+  (non-orig (ltk a a))+  (uniq-orig "hello world")+  (traces+    ((send (enc "hello world" (ltk a a))) (recv (enc t (ltk a a)))))+  (label 7)+  (unrealized (0 1))+  (origs ("hello world" (0 0)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton test+  (vars (a name))+  (defstrand rtag_mesg 2 (t "hello world") (a a))+  (non-orig (ltk a a))+  (uniq-orig "hello world")+  (operation encryption-test (displaced 1 0 rtag_mesg 1)+    (enc "hello world" (ltk a a)) (0 1))+  (traces+    ((send (enc "hello world" (ltk a a)))+      (recv (enc "hello world" (ltk a a)))))+  (label 8)+  (parent 7)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (t "hello world"))))+  (origs ("hello world" (0 0))))++(defskeleton test+  (vars (a name) (t tag))+  (defstrand rtag_mesg 2 (t (cat "init" t)) (a a))+  (defstrand stag 1 (k (ltk a a)) (t t))+  (precedes ((1 0) (0 1)))+  (non-orig (ltk a a))+  (uniq-orig "hello world")+  (operation encryption-test (added-strand stag 1)+    (enc "init" t (ltk a a)) (0 1))+  (traces+    ((send (enc "hello world" (ltk a a)))+      (recv (enc "init" t (ltk a a))))+    ((send (enc "init" t (ltk a a)))))+  (label 9)+  (parent 7)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (t (cat "init" t)))))+  (origs ("hello world" (0 0))))++(comment "Nothing left to do")
+ tst/target.scm view
@@ -0,0 +1,88 @@+;;; Target terms experiment+;++(defprotocol target-simple basic+  (defrole comb (vars (k1 k2 skey) (n1 n2 text))+    (trace+     (send  (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))+     (recv n1)+    )+    (non-orig k1 k2)+    (uniq-orig n1 n2)+    )+  (defrole trans1 (vars (n text) (k1 k2 skey) (m mesg))+  (trace+   (recv (enc "oo" (enc "bar" n k1) m k2))+   (send m))+   (non-orig k1 k2)+  )+  (defrole trans2 (vars (n text) (k skey))+    (trace+     (recv (enc "baz" n k))+     (send n)+     )+    (non-orig k)+  )+)++(defskeleton target-simple+  (vars )+  (defstrand comb 2 )+)++; The aim of this experiment was to verify a suspected incompleteness+; in CPSA.  This protocol is designed so that the initiator point of+; view has a single shape.  The protocol deals with encrypted pieces+; identified with a tag, either "foo", "bar", or "baz".  When a nonce+; is generated by the init role, it is encrypted with "foo."  The+; combiner role (comb) takes two "foo" pieces associated with nonces+; n1 and n2, and combines them to make a pair where n1 is placed in a+; "bar" piece and n2 is placed in a "baz" piece and these two are+; encrypted under another key.  There are two transforming roles.  One+; takes an encryption with two pieces in it where the first is a "bar"+; piece and removes the second piece from the encryption.  The other+; decrypts the nonce out of a "baz" piece.++; The shape expected involves a single init role that generates a+; "foo" piece with a nonce n.  That message supplied to the combiner+; role twice, which produces an "oo" encryption of an n "bar" piece+; and an n "baz" piece.  A trans1 instance extracts the "baz" piece,+; and a trans2 instance extracts n from the baz piece and returns it+; to init.++(defprotocol target basic+  (defrole comb (vars (k1 k2 skey) (n1 n2 text))+    (trace+     (recv (enc "foo" n1 k1))+     (recv (enc "foo" n2 k1))+     (send  (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))+    )+    (non-orig k1 k2)+    (neq (n1 n2))+    )+  (defrole init (vars (k skey) (n text))+    (trace+     (send (enc "foo" n k))+     (recv n))+    (uniq-orig n)+    (non-orig k)+  )+  (defrole trans1 (vars (n text) (k1 k2 skey) (m mesg))+  (trace+   (recv (enc "oo" (enc "bar" n k1) m k2))+   (send m))+   (non-orig k1 k2)+  )+  (defrole trans2 (vars (n text) (k skey))+    (trace+     (recv (enc "baz" n k))+     (send n)+     )+    (non-orig k)+  )+)++;(defskeleton target+;  (vars )+;  (defstrand init 2 )+;)
+ tst/target.tst view
@@ -0,0 +1,131 @@+(comment "CPSA 3.6.8")+(comment "All input read from tst/target.scm")++(defprotocol target-simple basic+  (defrole comb+    (vars (k1 k2 skey) (n1 n2 text))+    (trace (send (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))+      (recv n1))+    (non-orig k1 k2)+    (uniq-orig n1 n2))+  (defrole trans1+    (vars (n text) (k1 k2 skey) (m mesg))+    (trace (recv (enc "oo" (enc "bar" n k1) m k2)) (send m))+    (non-orig k1 k2))+  (defrole trans2+    (vars (n text) (k skey))+    (trace (recv (enc "baz" n k)) (send n))+    (non-orig k)))++(defskeleton target-simple+  (vars (n1 n2 text) (k1 k2 skey))+  (defstrand comb 2 (n1 n1) (n2 n2) (k1 k1) (k2 k2))+  (non-orig k1 k2)+  (uniq-orig n1 n2)+  (traces+    ((send (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))+      (recv n1)))+  (label 0)+  (unrealized (0 1))+  (origs (n1 (0 0)) (n2 (0 0)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton target-simple+  (vars (n2 text) (k1 k2 skey))+  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))+  (non-orig k1 k2)+  (uniq-orig n2)+  (operation nonce-test (displaced 1 0 comb 1) n1 (0 1)+    (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))+  (traces+    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+      (recv n2)))+  (label 1)+  (parent 0)+  (unrealized (0 1))+  (origs (n2 (0 0)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton target-simple+  (vars (n2 text) (k1 k2 skey))+  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))+  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k1 k2)+  (uniq-orig n2)+  (operation nonce-test (added-strand trans1 2) n2 (0 1)+    (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+  (traces+    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))+    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+      (send (enc "baz" n2 k1))))+  (label 2)+  (parent 1)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton target-simple+  (vars (n2 text) (k1 k2 skey))+  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))+  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))+  (defstrand trans2 2 (n n2) (k k1))+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))+  (non-orig k1 k2)+  (uniq-orig n2)+  (operation nonce-test (added-strand trans2 2) n2 (0 1)+    (enc "baz" n2 k1) (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+  (traces+    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))+    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+      (send (enc "baz" n2 k1))) ((recv (enc "baz" n2 k1)) (send n2)))+  (label 3)+  (parent 2)+  (unrealized (2 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton target-simple+  (vars (n2 text) (k1 k2 skey))+  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))+  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))+  (defstrand trans2 2 (n n2) (k k1))+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))+  (non-orig k1 k2)+  (uniq-orig n2)+  (operation encryption-test (displaced 3 1 trans1 2) (enc "baz" n2 k1)+    (2 0) (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+  (traces+    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))+    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+      (send (enc "baz" n2 k1))) ((recv (enc "baz" n2 k1)) (send n2)))+  (label 4)+  (parent 3)+  (unrealized)+  (shape)+  (maps ((0) ((k1 k1) (k2 k2) (n1 n2) (n2 n2))))+  (origs (n2 (0 0))))++(defskeleton target-simple+  (vars (n2 text) (k1 k2 skey))+  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))+  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))+  (defstrand trans2 2 (n n2) (k k1))+  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))+    ((3 1) (2 0)))+  (non-orig k1 k2)+  (uniq-orig n2)+  (operation encryption-test (added-strand trans1 2) (enc "baz" n2 k1)+    (2 0) (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+  (traces+    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))+    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+      (send (enc "baz" n2 k1))) ((recv (enc "baz" n2 k1)) (send n2))+    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))+      (send (enc "baz" n2 k1))))+  (label 5)+  (parent 3)+  (seen 4)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(comment "Nothing left to do")
+ tst/test_g.scm view
@@ -0,0 +1,20 @@+(herald "small test" (algebra diffie-hellman)+ ;(limit 1)+)++(defprotocol test1 diffie-hellman+  (defrole init+    (vars (x rndx) (w expt) (k skey))+    (trace+     (send (enc (exp (gen) x) k))+     (recv (exp (gen) (mul x w))))+    (uniq-gen x)+  (non-orig k)+  )+)++;; Should need to use contraction with g to produce a shape.+(defskeleton test1+  (vars (k skey))+  (defstrand init 2 (k k))+  )
+ tst/test_g.tst view
@@ -0,0 +1,314 @@+(herald "small test" (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/test_g.scm")++(defprotocol test1 diffie-hellman+  (defrole init+    (vars (x rndx) (w expt) (k skey))+    (trace (send (enc (exp (gen) x) k)) (recv (exp (gen) (mul x w))))+    (non-orig k)+    (uniq-gen x)))++(defskeleton test1+  (vars (k skey) (x rndx) (w expt))+  (defstrand init 2 (k k) (x x) (w w))+  (non-orig k)+  (uniq-gen x)+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul x w)))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton test1+  (vars (k skey) (x rndx))+  (defstrand init 2 (k k) (x x) (w (rec x)))+  (non-orig k)+  (uniq-gen x)+  (operation nonce-test (contracted (x-0 x) (w (rec x))) (gen) (0 1))+  (traces ((send (enc (exp (gen) x) k)) (recv (gen))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((k k) (x x) (w (rec x)))))+  (origs))++(defskeleton test1+  (vars (k skey) (x rndx))+  (defstrand init 2 (k k) (x x) (w (one)))+  (non-orig k)+  (uniq-gen x)+  (operation nonce-test (displaced 1 0 init 1) (exp (gen) x-0) (0 1))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x))))+  (label 2)+  (parent 0)+  (unrealized (0 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton test1+  (vars (k k-0 skey) (x x-0 rndx))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))+  (defstrand init 1 (k k-0) (x x-0))+  (precedes ((1 0) (0 1)))+  (non-orig k k-0)+  (uniq-gen x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))+    ((send (enc (exp (gen) x-0) k-0))))+  (label 3)+  (parent 0)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton test1+  (vars (k skey) (x rndx) (w w-0 expt))+  (defstrand init 2 (k k) (x x) (w w))+  (deflistener (cat (exp (gen) (mul x w (rec w-0))) w-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k)+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x w (rec w-0))) w-0))+    (exp (gen) (mul x w)) (0 1))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul x w))))+    ((recv (cat (exp (gen) (mul x w (rec w-0))) w-0))+      (send (cat (exp (gen) (mul x w (rec w-0))) w-0))))+  (label 4)+  (parent 0)+  (unrealized (1 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton test1+  (vars (k skey) (x rndx) (w expt))+  (defstrand init 2 (k k) (x x) (w (one)))+  (deflistener (cat (exp (gen) (mul x (rec w))) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k)+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)+    (0 1) (enc (exp (gen) x) k))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))+    ((recv (cat (exp (gen) (mul x (rec w))) w))+      (send (cat (exp (gen) (mul x (rec w))) w))))+  (label 5)+  (parent 2)+  (unrealized (1 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton test1+  (vars (k k-0 skey) (x x-0 rndx) (w expt))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))+  (defstrand init 1 (k k-0) (x x-0))+  (deflistener (cat (exp (gen) (mul x-0 (rec w))) w))+  (precedes ((1 0) (2 0)) ((2 1) (0 1)))+  (non-orig k k-0)+  (uniq-gen x x-0)+  (precur (2 0))+  (operation nonce-test+    (added-listener (cat (exp (gen) (mul x-0 (rec w))) w))+    (exp (gen) x-0) (0 1) (enc (exp (gen) x-0) k-0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))+    ((send (enc (exp (gen) x-0) k-0)))+    ((recv (cat (exp (gen) (mul x-0 (rec w))) w))+      (send (cat (exp (gen) (mul x-0 (rec w))) w))))+  (label 6)+  (parent 3)+  (unrealized (2 0))+  (comment "4 in cohort - 4 not yet seen"))++(defskeleton test1+  (vars (k skey) (x rndx) (w expt))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) w)))+  (deflistener (cat (gen) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k)+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test+    (contracted (x-0 x) (w-0 (mul (rec x) w)) (w-1 w)) (gen) (1 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) w)))+    ((recv (cat (gen) w)) (send (cat (gen) w))))+  (label 7)+  (parent 4)+  (seen 0)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton test1+  (vars (k skey) (w expt) (x rndx))+  (defstrand init 2 (k k) (x x) (w w))+  (deflistener (cat (exp (gen) x) w))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k)+  (precur (1 0))+  (uniq-gen x)+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul w x))))+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))+  (label 8)+  (parent 4)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k k-0 skey) (x rndx) (w expt) (x-0 rndx))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) w x-0)))+  (deflistener (cat (exp (gen) x-0) w))+  (defstrand init 1 (k k-0) (x x-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+  (non-orig k k-0)+  (precur (1 0))+  (uniq-gen x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul w x-0))))+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))+    ((send (enc (exp (gen) x-0) k-0))))+  (label 9)+  (parent 4)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k skey) (x rndx))+  (defstrand init 2 (k k) (x x) (w (one)))+  (deflistener (cat (gen) x))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k)+  (uniq-gen x)+  (precur (1 0))+  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))+    ((recv (cat (gen) x)) (send (cat (gen) x))))+  (label 10)+  (parent 5)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k skey) (x rndx))+  (defstrand init 2 (k k) (x x) (w (one)))+  (deflistener (cat (exp (gen) x) (one)))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))+  (non-orig k)+  (precur (1 0))+  (uniq-gen x)+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))+  (label 11)+  (parent 5)+  (unrealized (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k k-0 skey) (x x-0 rndx))+  (defstrand init 2 (k k) (x x) (w (one)))+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+  (defstrand init 1 (k k-0) (x x-0))+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))+  (non-orig k k-0)+  (precur (1 0))+  (uniq-gen x x-0)+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))+    ((send (enc (exp (gen) x-0) k-0))))+  (label 12)+  (parent 5)+  (unrealized (0 1) (1 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k k-0 skey) (x x-0 rndx))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))+  (defstrand init 1 (k k-0) (x x-0))+  (deflistener (cat (gen) x-0))+  (precedes ((1 0) (2 0)) ((2 1) (0 1)))+  (non-orig k k-0)+  (uniq-gen x x-0)+  (precur (2 0))+  (operation nonce-test (contracted (x-1 x-0) (w x-0)) (gen) (2 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))+    ((send (enc (exp (gen) x-0) k-0)))+    ((recv (cat (gen) x-0)) (send (cat (gen) x-0))))+  (label 13)+  (parent 6)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k k-0 skey) (x x-0 rndx))+  (defstrand init 2 (k k) (x x-0) (w (mul x (rec x-0))))+  (defstrand init 1 (k k-0) (x x))+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))+  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((2 1) (0 1)))+  (non-orig k k-0)+  (precur (2 0))+  (uniq-gen x x-0)+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-1) (2 0))+  (traces ((send (enc (exp (gen) x-0) k)) (recv (exp (gen) x)))+    ((send (enc (exp (gen) x) k-0)))+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))+      (send (cat (exp (gen) x-0) (mul x (rec x-0))))))+  (label 14)+  (parent 6)+  (unrealized (0 1) (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k k-0 skey) (x x-0 rndx))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))+  (defstrand init 1 (k k-0) (x x-0))+  (deflistener (cat (exp (gen) x-0) (one)))+  (precedes ((1 0) (2 0)) ((2 1) (0 1)))+  (non-orig k k-0)+  (precur (2 0))+  (uniq-gen x x-0)+  (operation nonce-test (displaced 3 1 init 1) (exp (gen) x-1) (2 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))+    ((send (enc (exp (gen) x-0) k-0)))+    ((recv (cat (exp (gen) x-0) (one)))+      (send (cat (exp (gen) x-0) (one)))))+  (label 15)+  (parent 6)+  (unrealized (2 0))+  (dead)+  (comment "empty cohort"))++(defskeleton test1+  (vars (k k-0 k-1 skey) (x x-0 x-1 rndx))+  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))+  (defstrand init 1 (k k-0) (x x-0))+  (deflistener (cat (exp (gen) x-1) (mul x-0 (rec x-1))))+  (defstrand init 1 (k k-1) (x x-1))+  (precedes ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))+  (non-orig k k-0 k-1)+  (precur (2 0))+  (uniq-gen x x-0 x-1)+  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (2 0))+  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))+    ((send (enc (exp (gen) x-0) k-0)))+    ((recv (cat (exp (gen) x-1) (mul x-0 (rec x-1))))+      (send (cat (exp (gen) x-1) (mul x-0 (rec x-1)))))+    ((send (enc (exp (gen) x-1) k-1))))+  (label 16)+  (parent 6)+  (unrealized (0 1) (2 0))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/test_small.tst view
@@ -1,6 +1,6 @@ (herald "small test" (algebra diffie-hellman)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/test_small.scm")  (defprotocol test diffie-hellman
+ tst/thinning.scm view
@@ -0,0 +1,85 @@+(herald thinning (algebra diffie-hellman))++;; This examples shows a problem with thinning.+;;+;; Skeleton 12 should lead to a shape, but a bug in thinning causes it+;; to be dead.  Adding one neq in the point-of-view fixes the problem,+;; and adding two causes the problem to re-emerge.  Skeleton 36 is+;; what is being erroneously thinned in the first run.++;; Blindvault provisioner+;;+;; Diffie-Hellman algebra used so that bltk is available.++(defprotocol provision diffie-hellman++  (defrole supplicant+    (vars (self pal admin name) (meas text) (count data))+    (trace+     (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))+     (recv (enc "admit"+		(enc "admitted" count meas (hash (bltk self pal)) (privk admin))+		(bltk self pal)+		(pubk self))))+    (uniq-orig meas))++  (defrole admission+    (vars (self pal admin counter name)+	  (meas-self meas-pal text) (token count data))+    (trace+     (recv (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))+     (send (enc "incr" token (pubk counter)))+     (recv (enc "count" count token (privk counter)))+     (send (enc "admit"+		(enc "admitted" count meas-self+		     (hash (bltk self pal)) (privk admin))+		(bltk self pal)+		(pubk self))))+    (uniq-orig token)+    (non-orig (privk counter)))++  (defrole counter+    (vars (t n data) (k akey))+    (trace+     (recv (enc "incr" t k))+     (send (enc "count" n t (invk k))))+    (uniq-orig n))++  (defrule one-counter+    (forall ((z w strd) (counter1 counter2 name))+	    (implies+	     (and (p "admission" z 2)+		  (p "admission" "counter" z counter1)+		  (p "admission" w 2)+		  (p "admission" "counter" w counter2))+	     (= counter1 counter2))))++  )++(defskeleton provision+  (vars (left right admin name))+  (defstrand supplicant 2 (self left) (pal right) (admin admin))+  (defstrand supplicant 2 (self right) (pal left) (admin admin))+  (pen-non-orig (bltk left right))+  ;; (neq (left right))  ;; One fixes the problem.+  ;; (neq (right left))  ;; Two makes the problem reappear.+  (non-orig (privk left) (privk right) (privk admin)))+++(defskeleton provision+  (vars (left right admin name))+  (defstrand supplicant 2 (self left) (pal right) (admin admin))+  (defstrand supplicant 2 (self right) (pal left) (admin admin))+  (pen-non-orig (bltk left right))+  (neq (left right)) ;; One fixes the problem.+  (non-orig (privk left) (privk right) (privk admin)))+++(defskeleton provision+  (vars (left right admin name))+  (defstrand supplicant 2 (self left) (pal right) (admin admin))+  (defstrand supplicant 2 (self right) (pal left) (admin admin))+  (pen-non-orig (bltk left right))+  (neq (left right)) ;; One fixes the problem.+  (neq (right left)) ;; Two makes the problem reappear.+  (non-orig (privk left) (privk right) (privk admin)))
+ tst/thinning.tst view
@@ -0,0 +1,2933 @@+(herald thinning (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/thinning.scm")++(defprotocol provision diffie-hellman+  (defrole supplicant+    (vars (self pal admin name) (meas text) (count data))+    (trace+      (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk self pal))+            (privk admin)) (bltk self pal) (pubk self))))+    (uniq-orig meas))+  (defrole admission+    (vars (self pal admin counter name) (meas-self text)+      (token count data))+    (trace+      (recv+        (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas-self (hash (bltk self pal))+            (privk admin)) (bltk self pal) (pubk self))))+    (non-orig (privk counter))+    (uniq-orig token))+  (defrole counter+    (vars (t n data) (k akey))+    (trace (recv (enc "incr" t k)) (send (enc "count" n t (invk k))))+    (uniq-orig n))+  (defrule one-counter+    (forall ((z w strd) (counter1 counter2 name))+      (implies+        (and (p "admission" z 2) (p "admission" "counter" z counter1)+          (p "admission" w 2) (p "admission" "counter" w counter2))+        (= counter1 counter2)))))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 data) (left right admin name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (non-orig (privk left) (privk right) (privk admin))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0)+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 0)+  (unrealized (0 1) (1 1))+  (origs (meas-0 (1 0)) (meas (0 0)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas text) (count data) (left admin name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (non-orig (privk left) (privk admin))+  (pen-non-orig (bltk left left))+  (uniq-orig meas)+  (operation collapsed 1 0)+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left)))))+  (label 1)+  (parent 0)+  (unrealized (0 1))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count-0 meas-0 (hash (bltk left right))+      (privk admin)) (1 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 2)+  (parent 0)+  (seen 6)+  (unrealized (0 1) (1 1) (2 0) (2 2))+  (comment "3 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count-0 meas-0 (hash (bltk left right))+      (privk admin)) (1 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 3)+  (parent 0)+  (unrealized (0 1) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas text) (count token data) (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas) (token token) (count count)+    (self left) (pal left) (admin admin) (counter counter))+  (precedes ((0 0) (1 0)) ((1 3) (0 1)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left left)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left)))))+  (label 4)+  (parent 1)+  (unrealized (1 2))+  (origs (token (1 1)) (meas (0 0)))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self right)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal right) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal right) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (non-orig (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk right right))+  (uniq-orig meas meas-0 token)+  (operation nonce-test (contracted (left right)) meas-0 (2 0)+    (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((send+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right)))))+  (label 5)+  (parent 2)+  (unrealized (0 1) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 3) (2 0)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas-0 (2 0)+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 6)+  (parent 2)+  (unrealized (0 1) (1 1) (2 0) (2 2) (3 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-0 token (privk counter)) (2 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter)))))+  (label 7)+  (parent 3)+  (seen 11 12)+  (unrealized (0 1))+  (comment "4 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas text) (count token data) (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas) (token token) (count count)+    (self left) (pal left) (admin admin) (counter counter))+  (defstrand counter 2 (t token) (n count) (k (pubk counter)))+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((1 3) (0 1)) ((2 1) (1 2)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas count token)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count token (privk counter)) (1 2))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count token (privk counter)))))+  (label 8)+  (parent 4)+  (unrealized)+  (shape)+  (maps+    ((0 0)+      ((left left) (right left) (admin admin) (meas meas) (count count)+        (meas-0 meas) (count-0 count))))+  (origs (count (2 1)) (token (1 1)) (meas (0 0))))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self right)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal right) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))+  (non-orig (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk right right))+  (uniq-orig meas meas-0 count-0 token)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-0 token (privk counter)) (2 2))+  (traces+    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((send+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter)))))+  (label 9)+  (parent 5)+  (seen 13)+  (unrealized (0 1))+  (comment "2 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))+    ((4 1) (3 2)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-1 token-0 (privk counter)) (3 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter)))))+  (label 10)+  (parent 6)+  (seen 15)+  (unrealized (0 1) (1 1) (2 0) (2 2))+  (comment "5 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 11)+  (parent 7)+  (seen 13 16)+  (unrealized (0 1) (4 0) (4 2))+  (comment "5 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self left) (pal right) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 12)+  (parent 7)+  (unrealized (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self right)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal right) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal right) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (non-orig (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk right right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk right right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((send+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right)))))+  (label 13)+  (parent 9)+  (unrealized (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))+    ((4 1) (3 2)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas meas-0 token token-0 count-1)+  (operation nonce-test (displaced 5 3 admission 4) meas-0 (2 0)+    (enc "admit"+      (enc "admitted" count-1 meas-0 (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk right))+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter)))))+  (label 14)+  (parent 10)+  (unrealized (0 1) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 count-1 token-1 count-2 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas-0) (token token-1)+    (count count-2) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (3 0)) ((1 0) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))+    ((3 3) (2 0)) ((4 1) (3 2)) ((5 3) (2 0)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0 count-1 token-1)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas-0 (2 0)+    (enc "admit"+      (enc "admitted" count-1 meas-0 (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk right))+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-2 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-2 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 15)+  (parent 10)+  (unrealized (0 1) (1 1) (2 0) (2 2) (5 2))+  (dead)+  (comment "empty cohort"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 3) (4 0)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas (4 0)+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 16)+  (parent 11)+  (unrealized (0 1) (4 0) (4 2) (5 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self left) (pal right) (admin admin) (counter counter))+  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count count-0 token token-0)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count token-0 (privk counter)) (4 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count token-0 (privk counter)))))+  (label 17)+  (parent 12)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((left left) (right right) (admin admin) (meas meas) (count count)+        (meas-0 meas-0) (count-0 count-0))))+  (origs (count (5 1)) (token-0 (4 1)) (count-0 (3 1)) (token (2 1))+    (meas-0 (1 0)) (meas (0 0))))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self right)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal right) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal right) (admin admin) (counter counter))+  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))+  (non-orig (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk right right))+  (uniq-orig meas meas-0 count count-0 token token-0)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count token-0 (privk counter)) (4 2))+  (traces+    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((send+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count token-0 (privk counter)))))+  (label 18)+  (parent 13)+  (seen 17)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (precedes ((1 0) (3 0)) ((2 1) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))+    ((3 3) (2 0)) ((4 1) (3 2)) ((5 1) (2 2)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas meas-0 count-0 token token-0 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-0 token (privk counter)) (2 2))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter)))))+  (label 19)+  (parent 14)+  (seen 21)+  (unrealized (0 1))+  (comment "4 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))+    ((6 1) (5 2)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-1 token-1 (privk counter)) (5 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter)))))+  (label 20)+  (parent 16)+  (seen 23)+  (unrealized (0 1) (4 0) (4 2))+  (comment "7 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 count-1 token-1 data)+    (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-1) (count count)+    (self left) (pal left) (admin admin) (counter counter))+  (precedes ((0 0) (6 0)) ((1 0) (3 0)) ((2 1) (5 0)) ((2 3) (1 1))+    ((3 1) (4 0)) ((3 3) (2 0)) ((4 1) (3 2)) ((5 1) (2 2))+    ((6 3) (0 1)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas meas-0 count-0 token token-0 count-1 token-1)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left left)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left)))))+  (label 21)+  (parent 19)+  (unrealized (6 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self right)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal right) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal right) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self right) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))+    ((6 1) (5 2)))+  (non-orig (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk right right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)+  (operation nonce-test (displaced 7 5 admission 4) meas (4 0)+    (enc "admit"+      (enc "admitted" count-1 meas (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk left))+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((send+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv+       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk right right))+            (privk admin)) (bltk right right) (pubk right))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter)))))+  (label 22)+  (parent 20)+  (seen 24)+  (unrealized (4 2))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 token-2 count-2 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-2)+    (count count-2) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((2 1) (3 0))+    ((2 3) (1 1)) ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0))+    ((5 3) (4 0)) ((6 1) (5 2)) ((7 3) (4 0)))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1 token-2)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas (4 0)+    (enc "admit"+      (enc "admitted" count-1 meas (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk left))+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-2 (pubk counter)))+      (recv (enc "count" count-2 token-2 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-2 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 23)+  (parent 20)+  (unrealized (0 1) (4 0) (4 2) (7 2))+  (dead)+  (comment "empty cohort"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 count-1 token-1 data)+    (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-1) (count count)+    (self left) (pal left) (admin admin) (counter counter))+  (defstrand counter 2 (t token-1) (n count) (k (pubk counter)))+  (precedes ((0 0) (6 0)) ((1 0) (3 0)) ((2 1) (5 0)) ((2 3) (1 1))+    ((3 1) (4 0)) ((3 3) (2 0)) ((4 1) (3 2)) ((5 1) (2 2))+    ((6 1) (7 0)) ((6 3) (0 1)) ((7 1) (6 2)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas meas-0 count count-0 token token-0 count-1 token-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count token-1 (privk counter)) (6 2))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count token-1 (privk counter)))))+  (label 24)+  (parent 21)+  (unrealized)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 count-1 token-1 data)+    (left admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal left) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-1) (count count)+    (self left) (pal left) (admin admin) (counter counter))+  (defstrand counter 2 (t token-1) (n count) (k (pubk counter)))+  (precedes ((0 0) (5 0)) ((1 0) (3 0)) ((2 1) (4 0)) ((2 3) (1 1))+    ((3 1) (2 0)) ((4 1) (2 2)) ((5 1) (6 0)) ((5 3) (0 1))+    ((6 1) (5 2)))+  (non-orig (privk left) (privk admin) (privk counter))+  (pen-non-orig (bltk left left))+  (uniq-orig meas meas-0 count count-0 token count-1 token-1)+  (operation generalization deleted (3 0))+  (traces+    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left left))+            (privk admin)) (bltk left left) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count token-1 (privk counter)))))+  (label 25)+  (parent 24)+  (seen 18)+  (unrealized)+  (comment "1 in cohort - 0 not yet seen"))++(comment "Nothing left to do")++(defprotocol provision diffie-hellman+  (defrole supplicant+    (vars (self pal admin name) (meas text) (count data))+    (trace+      (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk self pal))+            (privk admin)) (bltk self pal) (pubk self))))+    (uniq-orig meas))+  (defrole admission+    (vars (self pal admin counter name) (meas-self text)+      (token count data))+    (trace+      (recv+        (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas-self (hash (bltk self pal))+            (privk admin)) (bltk self pal) (pubk self))))+    (non-orig (privk counter))+    (uniq-orig token))+  (defrole counter+    (vars (t n data) (k akey))+    (trace (recv (enc "incr" t k)) (send (enc "count" n t (invk k))))+    (uniq-orig n))+  (defrule one-counter+    (forall ((z w strd) (counter1 counter2 name))+      (implies+        (and (p "admission" z 2) (p "admission" "counter" z counter1)+          (p "admission" w 2) (p "admission" "counter" w counter2))+        (= counter1 counter2)))))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 data) (left right admin name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0)+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 26)+  (unrealized (0 1) (1 1))+  (origs (meas-0 (1 0)) (meas (0 0)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count-0 meas-0 (hash (bltk left right))+      (privk admin)) (1 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 27)+  (parent 26)+  (seen 29)+  (unrealized (0 1) (1 1) (2 0) (2 2))+  (comment "2 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count-0 meas-0 (hash (bltk left right))+      (privk admin)) (1 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 28)+  (parent 26)+  (unrealized (0 1) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 3) (2 0)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas-0 (2 0)+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 29)+  (parent 27)+  (unrealized (0 1) (1 1) (2 0) (2 2) (3 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-0 token (privk counter)) (2 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter)))))+  (label 30)+  (parent 28)+  (seen 32 33)+  (unrealized (0 1))+  (comment "4 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))+    ((4 1) (3 2)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-1 token-0 (privk counter)) (3 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter)))))+  (label 31)+  (parent 29)+  (seen 34)+  (unrealized (0 1) (1 1) (2 0) (2 2))+  (comment "4 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 32)+  (parent 30)+  (seen 35)+  (unrealized (0 1) (4 0) (4 2))+  (comment "4 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self left) (pal right) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 33)+  (parent 30)+  (unrealized (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 count-1 token-1 count-2 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas-0) (token token-1)+    (count count-2) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (3 0)) ((1 0) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))+    ((3 3) (2 0)) ((4 1) (3 2)) ((5 3) (2 0)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0 count-1 token-1)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas-0 (2 0)+    (enc "admit"+      (enc "admitted" count-1 meas-0 (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk right))+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-2 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-2 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 34)+  (parent 31)+  (unrealized (0 1) (1 1) (2 0) (2 2) (5 2))+  (dead)+  (comment "empty cohort"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 3) (4 0)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas (4 0)+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 35)+  (parent 32)+  (unrealized (0 1) (4 0) (4 2) (5 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self left) (pal right) (admin admin) (counter counter))+  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count count-0 token token-0)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count token-0 (privk counter)) (4 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count token-0 (privk counter)))))+  (label 36)+  (parent 33)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((left left) (right right) (admin admin) (meas meas) (count count)+        (meas-0 meas-0) (count-0 count-0))))+  (origs (count (5 1)) (token-0 (4 1)) (count-0 (3 1)) (token (2 1))+    (meas-0 (1 0)) (meas (0 0))))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))+    ((6 1) (5 2)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-1 token-1 (privk counter)) (5 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter)))))+  (label 37)+  (parent 35)+  (seen 38)+  (unrealized (0 1) (4 0) (4 2))+  (comment "6 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 token-2 count-2 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-2)+    (count count-2) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((2 1) (3 0))+    ((2 3) (1 1)) ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0))+    ((5 3) (4 0)) ((6 1) (5 2)) ((7 3) (4 0)))+  (neq (left right))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1 token-2)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas (4 0)+    (enc "admit"+      (enc "admitted" count-1 meas (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk left))+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-2 (pubk counter)))+      (recv (enc "count" count-2 token-2 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-2 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 38)+  (parent 37)+  (unrealized (0 1) (4 0) (4 2) (7 2))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol provision diffie-hellman+  (defrole supplicant+    (vars (self pal admin name) (meas text) (count data))+    (trace+      (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk self pal))+            (privk admin)) (bltk self pal) (pubk self))))+    (uniq-orig meas))+  (defrole admission+    (vars (self pal admin counter name) (meas-self text)+      (token count data))+    (trace+      (recv+        (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas-self (hash (bltk self pal))+            (privk admin)) (bltk self pal) (pubk self))))+    (non-orig (privk counter))+    (uniq-orig token))+  (defrole counter+    (vars (t n data) (k akey))+    (trace (recv (enc "incr" t k)) (send (enc "count" n t (invk k))))+    (uniq-orig n))+  (defrule one-counter+    (forall ((z w strd) (counter1 counter2 name))+      (implies+        (and (p "admission" z 2) (p "admission" "counter" z counter1)+          (p "admission" w 2) (p "admission" "counter" w counter2))+        (= counter1 counter2)))))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 data) (left right admin name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0)+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 39)+  (unrealized (0 1) (1 1))+  (origs (meas-0 (1 0)) (meas (0 0)))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count-0 meas-0 (hash (bltk left right))+      (privk admin)) (1 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 40)+  (parent 39)+  (seen 42)+  (unrealized (0 1) (1 1) (2 0) (2 2))+  (comment "2 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (2 0)) ((2 3) (1 1)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count-0 meas-0 (hash (bltk left right))+      (privk admin)) (1 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 41)+  (parent 39)+  (unrealized (0 1) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 3) (2 0)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas-0 (2 0)+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 42)+  (parent 40)+  (unrealized (0 1) (1 1) (2 0) (2 2) (3 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-0 token (privk counter)) (2 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter)))))+  (label 43)+  (parent 41)+  (seen 45 46)+  (unrealized (0 1))+  (comment "4 in cohort - 2 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))+    ((4 1) (3 2)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-1 token-0 (privk counter)) (3 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter)))))+  (label 44)+  (parent 42)+  (seen 47)+  (unrealized (0 1) (1 1) (2 0) (2 2))+  (comment "4 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 45)+  (parent 43)+  (seen 48)+  (unrealized (0 1) (4 0) (4 2))+  (comment "4 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self left) (pal right) (admin admin) (counter counter))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0)+  (rule one-counter)+  (operation encryption-test (added-strand admission 4)+    (enc "admitted" count meas (hash (bltk left right)) (privk admin))+    (0 1))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 46)+  (parent 43)+  (unrealized (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 count-1 token-1 count-2 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand admission 4 (meas-self meas-0) (token token-0)+    (count count-1) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas-0) (token token-1)+    (count count-2) (self right) (pal left) (admin admin)+    (counter counter))+  (precedes ((1 0) (3 0)) ((1 0) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))+    ((3 3) (2 0)) ((4 1) (3 2)) ((5 3) (2 0)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 token token-0 count-1 token-1)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas-0 (2 0)+    (enc "admit"+      (enc "admitted" count-1 meas-0 (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk right))+    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count-1 token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count-1 token-0 (privk counter))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-2 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-2 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right)))))+  (label 47)+  (parent 44)+  (unrealized (0 1) (1 1) (2 0) (2 2) (5 2))+  (dead)+  (comment "empty cohort"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 3) (4 0)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas (4 0)+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 48)+  (parent 45)+  (unrealized (0 1) (4 0) (4 2) (5 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text) (count count-0 token token-0 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self left) (pal right) (admin admin) (counter counter))+  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))+  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count count-0 token token-0)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count token-0 (privk counter)) (4 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-0 (pubk counter)))+      (send (enc "count" count token-0 (privk counter)))))+  (label 49)+  (parent 46)+  (unrealized)+  (shape)+  (maps+    ((0 1)+      ((left left) (right right) (admin admin) (meas meas) (count count)+        (meas-0 meas-0) (count-0 count-0))))+  (origs (count (5 1)) (token-0 (4 1)) (count-0 (3 1)) (token (2 1))+    (meas-0 (1 0)) (meas (0 0))))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))+    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))+    ((6 1) (5 2)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)+  (operation encryption-test (added-strand counter 2)+    (enc "count" count-1 token-1 (privk counter)) (5 2))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter)))))+  (label 50)+  (parent 48)+  (seen 51)+  (unrealized (0 1) (4 0) (4 2))+  (comment "6 in cohort - 1 not yet seen"))++(defskeleton provision+  (vars (meas meas-0 text)+    (count count-0 token token-0 token-1 count-1 token-2 count-2 data)+    (left right admin counter name))+  (defstrand supplicant 2 (meas meas) (count count) (self left)+    (pal right) (admin admin))+  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)+    (pal left) (admin admin))+  (defstrand admission 4 (meas-self meas-0) (token token)+    (count count-0) (self right) (pal left) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-0) (count count)+    (self right) (pal left) (admin admin) (counter counter))+  (defstrand admission 4 (meas-self meas) (token token-1)+    (count count-1) (self left) (pal right) (admin admin)+    (counter counter))+  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))+  (defstrand admission 4 (meas-self meas) (token token-2)+    (count count-2) (self left) (pal right) (admin admin)+    (counter counter))+  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((2 1) (3 0))+    ((2 3) (1 1)) ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0))+    ((5 3) (4 0)) ((6 1) (5 2)) ((7 3) (4 0)))+  (neq (left right) (right left))+  (non-orig (privk left) (privk right) (privk admin) (privk counter))+  (pen-non-orig (bltk left right))+  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1 token-2)+  (rule one-counter)+  (operation nonce-test (added-strand admission 4) meas (4 0)+    (enc "admit"+      (enc "admitted" count-1 meas (hash (bltk left right))+        (privk admin)) (bltk left right) (pubk left))+    (enc "endpoint" left right meas (pubk left) (pubk admin)))+  (traces+    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (recv+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))+      (send (enc "incr" token (pubk counter)))+      (recv (enc "count" count-0 token (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-0 meas-0 (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "incr" token (pubk counter)))+      (send (enc "count" count-0 token (privk counter))))+    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))+      (send (enc "incr" token-0 (pubk counter)))+      (recv (enc "count" count token-0 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk right))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-1 (pubk counter)))+      (recv (enc "count" count-1 token-1 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-1 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left))))+    ((recv (enc "incr" token-1 (pubk counter)))+      (send (enc "count" count-1 token-1 (privk counter))))+    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))+      (send (enc "incr" token-2 (pubk counter)))+      (recv (enc "count" count-2 token-2 (privk counter)))+      (send+        (enc "admit"+          (enc "admitted" count-2 meas (hash (bltk left right))+            (privk admin)) (bltk left right) (pubk left)))))+  (label 51)+  (parent 50)+  (unrealized (0 1) (4 0) (4 2) (7 2))+  (dead)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/trust-anchor.tst view
@@ -1,7 +1,7 @@ (herald trust-anchor   (comment "Tests rule application on initial skeleton")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/trust-anchor.scm")  (defprotocol trust-anchor basic
+ tst/ugen_test.scm view
@@ -0,0 +1,60 @@+(herald "Ugen test"+	(comment This protocol demonstrates a bug in CPSA: points of+origination are not always preserved for skeleton uniq-orig+assumptions) (algebra diffie-hellman)) ++(defprotocol uof diffie-hellman+  (defrole init+    (vars (a b name) (x1 rndx) (x2 expt))+    (trace+     (send (exp (gen) x1))+     (recv (exp (gen) x2))+     (send (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))+  (defrole resp+    (vars (b a name) (x2 rndx) (x1 expt))+    (trace+     (recv (exp (gen) x1))+     (send (exp (gen) x2))+     (recv (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))+)++;;; The responder point-of-view+(defskeleton uof +  (vars (a b name) (x2 rndx))+  (defstrand resp 3 (a a) (b b) (x2 x2))+  (non-orig (ltk a b))+  (uniq-gen x2)+  (comment "Responder point-of-view"))++;;; The responder point-of-view+(defskeleton uof +  (vars (a b name) (x2 rndx) (x1 expt))+  (defstrand resp 3 (a a) (b b) (x2 x2) (x1 x1))+  (non-orig (ltk a b))+  (uniq-gen x2)+  (absent (x2 (exp (gen) x1)))+  (comment "Responder point-of-view"))++(defprotocol uof2 diffie-hellman+  (defrole init+    (vars (a b name) (x1 rndx) (x2 expt))+    (trace+     (send (exp (gen) x1))+     (recv (exp (gen) x2))+     (send (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))+  (defrole resp+    (vars (b a name) (x2 rndx) (x1 expt))+    (trace+     (recv (exp (gen) x1))+     (send (exp (gen) x2))+     (recv (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))+    (uniq-gen x2)+    )+)+;;; The responder point-of-view+(defskeleton uof2+  (vars (a b name) (x2 rndx))+  (defstrand resp 3 (a a) (b b) (x2 x2))+  (non-orig (ltk a b))+  (comment "Responder point-of-view"))+
+ tst/ugen_test.tst view
@@ -0,0 +1,123 @@+(herald "Ugen test"+  (comment This protocol demonstrates a bug in CPSA: points of+    origination are not always preserved for skeleton uniq-orig+    assumptions) (algebra diffie-hellman))++(comment "CPSA 3.6.8")+(comment "All input read from tst/ugen_test.scm")++(defprotocol uof diffie-hellman+  (defrole init+    (vars (a b name) (x1 rndx) (x2 expt))+    (trace (send (exp (gen) x1)) (recv (exp (gen) x2))+      (send+        (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))+  (defrole resp+    (vars (b a name) (x2 rndx) (x1 expt))+    (trace (recv (exp (gen) x1)) (send (exp (gen) x2))+      (recv+        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))))++(defskeleton uof+  (vars (a b name) (x2 rndx) (x1 expt))+  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))+  (non-orig (ltk a b))+  (uniq-gen x2)+  (comment "Responder point-of-view")+  (traces+    ((recv (exp (gen) x1)) (send (exp (gen) x2))+      (recv+        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))+  (label 0)+  (unrealized (0 2))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton uof+  (vars (a b name) (x1 rndx))+  (defstrand resp 3 (b b) (a a) (x2 x1) (x1 x1))+  (defstrand init 3 (a a) (b b) (x1 x1) (x2 x1))+  (precedes ((1 0) (0 0)) ((1 2) (0 2)))+  (non-orig (ltk a b))+  (uniq-gen x1)+  (operation encryption-test (added-strand init 3)+    (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b)) (0 2))+  (traces+    ((recv (exp (gen) x1)) (send (exp (gen) x1))+      (recv+        (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b))))+    ((send (exp (gen) x1)) (recv (exp (gen) x1))+      (send+        (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (x2 x1) (x1 x1))))+  (origs))++(comment "Nothing left to do")++(defprotocol uof diffie-hellman+  (defrole init+    (vars (a b name) (x1 rndx) (x2 expt))+    (trace (send (exp (gen) x1)) (recv (exp (gen) x2))+      (send+        (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))+  (defrole resp+    (vars (b a name) (x2 rndx) (x1 expt))+    (trace (recv (exp (gen) x1)) (send (exp (gen) x2))+      (recv+        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))))++(defskeleton uof+  (vars (a b name) (x2 rndx) (x1 expt))+  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))+  (absent (x2 (exp (gen) x1)))+  (non-orig (ltk a b))+  (uniq-gen x2)+  (comment "Responder point-of-view")+  (traces+    ((recv (exp (gen) x1)) (send (exp (gen) x2))+      (recv+        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))+  (label 2)+  (unrealized (0 2))+  (dead)+  (origs)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol uof2 diffie-hellman+  (defrole init+    (vars (a b name) (x1 rndx) (x2 expt))+    (trace (send (exp (gen) x1)) (recv (exp (gen) x2))+      (send+        (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))+  (defrole resp+    (vars (b a name) (x2 rndx) (x1 expt))+    (trace (recv (exp (gen) x1)) (send (exp (gen) x2))+      (recv+        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))+    (uniq-gen x2)+    (absent (x2 (exp (gen) x1)))))++(defskeleton uof2+  (vars (a b name) (x2 rndx) (x1 expt))+  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))+  (absent (x2 (exp (gen) x1)))+  (non-orig (ltk a b))+  (uniq-gen x2)+  (comment "Responder point-of-view")+  (traces+    ((recv (exp (gen) x1)) (send (exp (gen) x2))+      (recv+        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))+  (label 3)+  (unrealized (0 2))+  (dead)+  (origs)+  (comment "empty cohort"))++(comment "Nothing left to do")
tst/unilateral.tst view
@@ -1,6 +1,6 @@ (herald unilateral) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/unilateral.scm")  (defprotocol unilateral basic
tst/uniq-gen-test.tst view
@@ -1,7 +1,7 @@ (herald "Unique generation test protocols."   (comment "Skeletons 2, 4, and 7 should have no shapes.")) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/uniq-gen-test.scm")  (defprotocol uniqgentest basic
+ tst/uniq_orig_doesnt_fail.scm view
@@ -0,0 +1,70 @@+(herald "Uniq orig fail"+	(comment This protocol demonstrates a bug in CPSA: points of+origination are not always preserved for skeleton uniq-orig+assumptions)) ++(defprotocol uof basic+  (defrole init+    (vars (a b name) (n1 n2 text))+    (trace+     (send n1)+     (recv n2)+     (send (enc n1 n2 n1 (ltk a b)))))+  (defrole resp+    (vars (b a name) (n2 n1 text))+    (trace+     (recv n1)+     (send n2)+     (recv (enc n2 n1 n1 (ltk a b))))+  )+)++;;; The responder point-of-view+(defskeleton uof +  (vars (a b name) (n2 text))+  (defstrand resp 3 (a a) (b b) (n2 n2))+  (non-orig (ltk a b))+  (uniq-orig n2)+  (comment "Responder point-of-view"))++;;; The responder point-of-view+(defskeleton uof +  (vars (a b name) (n2 text))+  (defstrand resp 3 (a a) (b b) (n2 n2))+  (non-orig (ltk a b))+  (uniq-gen n2)+  (comment "Responder point-of-view"))++;;; The responder point-of-view+(defskeleton uof +  (vars (a b name) (n2 text))+  (defstrand resp 3 (a a) (b b) (n2 n2))+  (non-orig (ltk a b))+  (comment "Responder point-of-view"))++(defprotocol uof2 basic+  (defrole init+    (vars (a b name) (n1 n2 text))+    (trace+     (send n1)+     (recv n2)+     (send (enc n1 n2 (ltk a b))))+    (uniq-orig n1)+    )+  (defrole resp+    (vars (b a name) (n2 n1 text))+    (trace+     (recv n1)+     (send n2)+     (recv (enc n2 n1 (ltk a b))))+  )+)++;;; The responder point-of-view+(defskeleton uof2 +  (vars (a b name) (n2 text))+  (defstrand resp 3 (a a) (b b) (n2 n2))+  (non-orig (ltk a b))+  (uniq-orig n2)+  (comment "Responder point-of-view"))+
+ tst/uniq_orig_doesnt_fail.tst view
@@ -0,0 +1,115 @@+(herald "Uniq orig fail"+  (comment This protocol demonstrates a bug in CPSA: points of+    origination are not always preserved for skeleton uniq-orig+    assumptions))++(comment "CPSA 3.6.8")+(comment "All input read from tst/uniq_orig_doesnt_fail.scm")++(defprotocol uof basic+  (defrole init+    (vars (a b name) (n1 n2 text))+    (trace (send n1) (recv n2) (send (enc n1 n2 n1 (ltk a b)))))+  (defrole resp+    (vars (b a name) (n2 n1 text))+    (trace (recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b))))))++(defskeleton uof+  (vars (n2 n1 text) (a b name))+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))+  (non-orig (ltk a b))+  (uniq-orig n2)+  (comment "Responder point-of-view")+  (traces ((recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b)))))+  (label 0)+  (unrealized (0 2))+  (dead)+  (origs (n2 (0 1)))+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol uof basic+  (defrole init+    (vars (a b name) (n1 n2 text))+    (trace (send n1) (recv n2) (send (enc n1 n2 n1 (ltk a b)))))+  (defrole resp+    (vars (b a name) (n2 n1 text))+    (trace (recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b))))))++(defskeleton uof+  (vars (n2 n1 text) (a b name))+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))+  (non-orig (ltk a b))+  (uniq-gen n2)+  (comment "Responder point-of-view")+  (traces ((recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b)))))+  (label 1)+  (unrealized (0 2))+  (dead)+  (origs)+  (comment "empty cohort"))++(comment "Nothing left to do")++(defprotocol uof basic+  (defrole init+    (vars (a b name) (n1 n2 text))+    (trace (send n1) (recv n2) (send (enc n1 n2 n1 (ltk a b)))))+  (defrole resp+    (vars (b a name) (n2 n1 text))+    (trace (recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b))))))++(defskeleton uof+  (vars (n2 n1 text) (a b name))+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))+  (non-orig (ltk a b))+  (comment "Responder point-of-view")+  (traces ((recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b)))))+  (label 2)+  (unrealized (0 2))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton uof+  (vars (n1 text) (a b name))+  (defstrand resp 3 (n2 n1) (n1 n1) (b b) (a a))+  (defstrand init 3 (n1 n1) (n2 n1) (a a) (b b))+  (precedes ((1 2) (0 2)))+  (non-orig (ltk a b))+  (operation encryption-test (added-strand init 3)+    (enc n1 n1 n1 (ltk a b)) (0 2))+  (traces ((recv n1) (send n1) (recv (enc n1 n1 n1 (ltk a b))))+    ((send n1) (recv n1) (send (enc n1 n1 n1 (ltk a b)))))+  (label 3)+  (parent 2)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (b b) (n2 n1) (n1 n1))))+  (origs))++(comment "Nothing left to do")++(defprotocol uof2 basic+  (defrole init+    (vars (a b name) (n1 n2 text))+    (trace (send n1) (recv n2) (send (enc n1 n2 (ltk a b))))+    (uniq-orig n1))+  (defrole resp+    (vars (b a name) (n2 n1 text))+    (trace (recv n1) (send n2) (recv (enc n2 n1 (ltk a b))))))++(defskeleton uof2+  (vars (n2 n1 text) (a b name))+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))+  (non-orig (ltk a b))+  (uniq-orig n2)+  (comment "Responder point-of-view")+  (traces ((recv n1) (send n2) (recv (enc n2 n1 (ltk a b)))))+  (label 4)+  (unrealized (0 2))+  (dead)+  (origs (n2 (0 1)))+  (comment "empty cohort"))++(comment "Nothing left to do")
− tst/wang.tst
@@ -1,7492 +0,0 @@-(comment "CPSA 3.4.0")-(comment "All input read from wang.scm")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener m)-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (comment "Experiment 1 to prove Lemma 4.1.")-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv m) (send m)))-  (label 0)-  (unrealized (1 0))-  (preskeleton)-  (comment "Not a skeleton"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener m)-  (precedes ((0 0) (1 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv m) (send m)))-  (label 1)-  (parent 0)-  (unrealized (1 0))-  (origs (m (0 0)) (k (0 0)))-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener m)-  (deflistener k)-  (precedes ((0 0) (2 0)) ((2 1) (1 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation nonce-test (added-listener k) m (1 0) (enc m k)-    (enc "keytag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash)) k r (pubk "encr" t))-    (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (pubk hash)) (enc (enc m k) (pubk hash)))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv m) (send m)) ((recv k) (send k)))-  (label 2)-  (parent 1)-  (unrealized (2 0))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (deflistener m)-  (deflistener k)-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 1) (0 0)) ((2 2) (1 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation nonce-test (displaced 0 3 init1 3) k (2 0)-    (enc k (pubk hash))-    (enc "keytag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash)) k r (pubk "encr" t))-    (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (pubk hash)))-  (traces ((recv m) (send m)) ((recv k) (send k))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r))))-  (label 3)-  (parent 2)-  (unrealized)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener m)-  (deflistener k)-  (defstrand ttp-rc1 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 2) (2 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation nonce-test (added-strand ttp-rc1 3) k (2 0)-    (enc k (pubk hash))-    (enc "keytag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash)) k r (pubk "encr" t))-    (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (pubk hash)))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv m) (send m)) ((recv k) (send k))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req"-          (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send (cat k r))))-  (label 4)-  (parent 2)-  (unrealized)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (deflistener m)-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 2) (0 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation generalization deleted (1 0))-  (traces ((recv m) (send m))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r))))-  (label 5)-  (parent 3)-  (unrealized)-  (shape)-  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs (m (1 0)) (k (1 0))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener m)-  (defstrand ttp-rc1 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (precedes ((0 0) (2 0)) ((2 2) (1 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation generalization deleted (2 0))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv m) (send m))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req"-          (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send (cat k r))))-  (label 6)-  (parent 4)-  (unrealized)-  (shape)-  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs (m (0 0)) (k (0 0))))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener k)-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (comment "Experiment 2 to prove Lemma 4.1.")-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv k) (send k)))-  (label 7)-  (unrealized (1 0))-  (preskeleton)-  (comment "Not a skeleton"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener k)-  (precedes ((0 0) (1 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv k) (send k)))-  (label 8)-  (parent 7)-  (unrealized (1 0))-  (origs (m (0 0)) (k (0 0)))-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (deflistener k)-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 2) (0 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation nonce-test (displaced 0 2 init1 3) k (1 0)-    (enc k (pubk hash))-    (enc "keytag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash)) k r (pubk "encr" t))-    (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (pubk hash)))-  (traces ((recv k) (send k))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r))))-  (label 9)-  (parent 8)-  (unrealized)-  (shape)-  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs (m (1 0)) (k (1 0))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (deflistener k)-  (defstrand ttp-rc1 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (precedes ((0 0) (2 0)) ((2 2) (1 0)))-  (non-orig (privk hash) (privk "encr" t))-  (uniq-orig m k)-  (operation nonce-test (added-strand ttp-rc1 3) k (1 0)-    (enc k (pubk hash))-    (enc "keytag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash)) k r (pubk "encr" t))-    (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (pubk hash)))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((recv k) (send k))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req"-          (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send (cat k r))))-  (label 10)-  (parent 8)-  (unrealized)-  (shape)-  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs (m (0 0)) (k (0 0))))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "sign" b))-  (comment "First of three experiments to prove Lemma 4.2, clause 1.")-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r))))-  (label 11)-  (unrealized (0 1))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 1) (0 1)))-  (non-orig (privk hash) (privk "sign" b))-  (operation encryption-test (added-strand resp1 2)-    (enc "eortag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)) (0 1))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))))-  (label 12)-  (parent 11)-  (unrealized)-  (shape)-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand resp3 2 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (precedes ((1 1) (0 1)))-  (non-orig (privk hash) (privk "sign" b))-  (operation encryption-test (added-strand resp3 2)-    (enc "eortag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)) (0 1))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))))-  (label 13)-  (parent 11)-  (unrealized)-  (shape)-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "sign" b))-  (comment "Second of three experiments to prove Lemma 4.2, clause 1.")-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))))-  (label 14)-  (unrealized (0 2))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 1) (0 2)))-  (non-orig (privk hash) (privk "sign" b))-  (operation encryption-test (added-strand resp1 2)-    (enc "eortag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)) (0 2))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))))-  (label 15)-  (parent 14)-  (unrealized)-  (shape)-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand resp3 2 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (precedes ((1 1) (0 2)))-  (non-orig (privk hash) (privk "sign" b))-  (operation encryption-test (added-strand resp3 2)-    (enc "eortag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)) (0 2))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))))-  (label 16)-  (parent 14)-  (unrealized)-  (shape)-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "sign" b))-  (comment "Third of three experiments to prove Lemma 4.2, clause 1.")-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))))-  (label 17)-  (unrealized (0 1) (0 3))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 1) (0 1)))-  (non-orig (privk hash) (privk "sign" b))-  (operation encryption-test (added-strand resp1 2)-    (enc "eortag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)) (0 1))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))))-  (label 18)-  (parent 17)-  (unrealized)-  (shape)-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (b t a hash name) (k skey))-  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand resp3 2 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (precedes ((1 1) (0 1)))-  (non-orig (privk hash) (privk "sign" b))-  (operation encryption-test (added-strand resp3 2)-    (enc "eortag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)) (0 1))-  (traces-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))))-  (label 19)-  (parent 17)-  (unrealized)-  (shape)-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a) (hash hash))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "sign" a))-  (comment "First of two experiments to prove Lemma 4.2, clause 2.")-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r))))-  (label 20)-  (unrealized (0 0))-  (origs)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (added-strand init5 1)-    (enc "eootag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)) (0 0))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))))-  (label 21)-  (parent 20)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b) (hash hash))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "sign" a))-  (comment "Second of two experiments to prove Lemma 4.2, clause 2.")-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r))))-  (label 22)-  (unrealized (0 0))-  (origs)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (added-strand init5 1)-    (enc "eootag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)) (0 0))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))))-  (label 23)-  (parent 22)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b) (hash hash))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (e1 e2 x mesg) (a t b hash name))-  (defstrand resp3 4 (e1 e1) (e2 e2) (x x) (a a) (b b) (t t)-    (hash hash))-  (non-orig (privk hash) (privk "sign" a))-  (comment "Experiments to prove Lemma 4.2, clause 3.")-  (traces-    ((recv-       (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-         (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash)) e2-           (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t)))))-  (label 24)-  (unrealized (0 0) (0 3))-  (origs)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp3 4 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (added-strand init5 1)-    (enc "eootag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)) (0 0))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))))-  (label 25)-  (parent 24)-  (unrealized (0 3))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp3 4 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((1 1) (0 3)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (displaced 1 2 init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 3))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 26)-  (parent 25)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (t t) (b b) (hash hash) (e1 (enc m k))-        (e2-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)))-        (x (enc k (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r r-0 text) (m data) (a t b hash name) (k skey))-  (defstrand resp3 4 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((2 1) (0 3)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (added-strand init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 3))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r-0 (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 27)-  (parent 25)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (t t) (b b) (hash hash) (e1 (enc m k))-        (e2-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)))-        (x (enc k (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (a t b hash name) (k skey))-  (defstrand resp3 4 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((1 2) (0 3)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (displaced 1 2 init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 3))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 28)-  (parent 25)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (t t) (b b) (hash hash) (e1 (enc m k))-        (e2-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)))-        (x (enc k (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r r-0 text) (m data) (a t b hash name) (k skey))-  (defstrand resp3 4 (e1 (enc m k))-    (e2-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t))) (x (enc k (pubk hash)))-    (a a) (b b) (t t) (hash hash))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((2 2) (0 3)))-  (non-orig (privk hash) (privk "sign" a))-  (operation encryption-test (added-strand init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 3))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r-0 (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 29)-  (parent 25)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (t t) (b b) (hash hash) (e1 (enc m k))-        (e2-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)))-        (x (enc k (pubk hash))))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (y x mesg) (a b t name))-  (deflistener-    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-      (privk "sign" t)))-  (non-orig (privk "sign" t))-  (comment "Experiments to prove Lemma 4.3, clause 1.")-  (traces-    ((recv-       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-         (privk "sign" t)))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (label 30)-  (unrealized (0 0))-  (origs)-  (comment "3 in cohort - 3 not yet seen"))--(defskeleton wang-  (vars (y x mesg) (a b t name))-  (deflistener-    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-      (privk "sign" t)))-  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))-  (precedes ((1 2) (0 0)))-  (non-orig (privk "sign" t))-  (operation encryption-test (added-strand ttp-ab1 3)-    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-      (privk "sign" t)) (0 0))-  (traces-    ((recv-       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-         (privk "sign" t)))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t))))-    ((recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (label 31)-  (parent 30)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (t t) (y y) (x x))))-  (origs))--(defskeleton wang-  (vars (y mesg) (r text) (a b t hash name) (k skey))-  (deflistener-    (enc "abcf"-      (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-      (privk "sign" t)))-  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 2) (0 0)))-  (non-orig (privk hash) (privk "sign" t))-  (operation encryption-test (added-strand ttp-rc2 3)-    (enc "abcf"-      (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-      (privk "sign" t)) (0 0))-  (traces-    ((recv-       (enc "abcf"-         (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-         (privk "sign" t)))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    ((recv-       (cat (cat a b t y (enc k (pubk hash)))-         (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k r-           (pubk "encr" t))-         (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq" (cat a b t y (enc k (pubk hash)))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t)))))-  (label 32)-  (parent 30)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (t t) (y y) (x (enc k (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (y mesg) (r text) (a b t hash name) (k skey))-  (deflistener-    (enc "abcf"-      (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-      (privk "sign" t)))-  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 2) (0 0)))-  (non-orig (privk hash) (privk "sign" t))-  (operation encryption-test (added-strand ttp-cf2 3)-    (enc "abcf"-      (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-      (privk "sign" t)) (0 0))-  (traces-    ((recv-       (enc "abcf"-         (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-         (privk "sign" t)))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    ((recv-       (cat (cat a b t y (enc k (pubk hash)))-         (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k r-           (pubk "encr" t))-         (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq" (cat a b t y (enc k (pubk hash)))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t)))))-  (label 33)-  (parent 30)-  (unrealized)-  (shape)-  (maps ((0) ((a a) (b b) (t t) (y y) (x (enc k (pubk hash))))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (y x mesg) (a b t name))-  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))-  (non-orig (privk "encr" t) (privk "sign" a))-  (comment "Experiment 1 to prove Lemma 4.3, clause 2.")-  (traces-    ((recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (label 34)-  (unrealized (0 0))-  (origs)-  (comment "2 in cohort - 2 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-ab1 3 (y (enc (enc m k) (pubk hash)))-    (x (enc k (pubk hash))) (a a) (b b) (t t))-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 1) (0 0)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 0))-  (traces-    ((recv-       (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-         (privk "sign" a)))-      (send-        (cat "sync-abrq"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 35)-  (parent 34)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((y (enc (enc m k) (pubk hash))) (x (enc k (pubk hash))) (a a)-        (b b) (t t))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-ab1 3 (y (enc (enc m k) (pubk hash)))-    (x (enc k (pubk hash))) (a a) (b b) (t t))-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 2) (0 0)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 0))-  (traces-    ((recv-       (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-         (privk "sign" a)))-      (send-        (cat "sync-abrq"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 36)-  (parent 34)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((y (enc (enc m k) (pubk hash))) (x (enc k (pubk hash))) (a a)-        (b b) (t t))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (y mesg) (r text) (a b t hash name) (k skey))-  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (comment "Experiment 2 to prove Lemma 4.3, clause 2.")-  (traces-    ((recv-       (cat (cat a b t y (enc k (pubk hash)))-         (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k r-           (pubk "encr" t))-         (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq" (cat a b t y (enc k (pubk hash)))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t)))))-  (label 37)-  (unrealized (0 0) (0 1))-  (origs)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-rc2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init5 1)-    (enc "eootag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)) (0 0))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))))-  (label 38)-  (parent 37)-  (unrealized (0 1))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-rc2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((1 1) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (displaced 1 2 init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 39)-  (parent 38)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r r-0 text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-rc2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((2 1) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r-0 (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 40)-  (parent 38)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-rc2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((1 2) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (displaced 1 2 init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 41)-  (parent 38)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r r-0 text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-rc2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((2 2) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "rcrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r-0 (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 42)-  (parent 38)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(comment "Nothing left to do")--(defprotocol wang basic-  (defrole init1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send (cat k r)))-    (non-orig (privk hash)))-  (defrole init2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init3-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole init4-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole init5-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole resp1-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp2-    (vars (a b t hash name) (m data) (r text) (k skey))-    (trace-      (recv-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc m k)-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t))-          (enc "eootag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq"-            (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-            (enc "keytag"-              (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-                (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv (cat k r)))-    (non-orig (privk hash)))-  (defrole resp3-    (vars (a b t hash name) (e1 e2 x mesg))-    (trace-      (recv-        (cat (cat a b t (enc e1 (pubk hash)) x) e1 e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))))-      (send-        (cat (cat a b t (enc e1 (pubk hash)) x) e2-          (enc "eootag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" a))-          (enc "eortag" (enc a b t (enc e1 (pubk hash)) x (pubk hash))-            e2 (privk "sign" b))-          (enc "rcrq" (cat a b t (enc e1 (pubk hash)) x) e2-            (privk "sign" b))))-      (recv-        (enc "abcf"-          (enc "abrq" a b t (enc e1 (pubk hash)) x (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-ab1-    (vars (a b t name) (y x mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))-      (send-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))-          (privk "sign" t)))))-  (defrole ttp-ab2-    (vars (a b t hash name) (y x e mesg))-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))-      (recv-        (cat "sync-abrq"-          (enc "eortag" (enc a b t y x (pubk hash)) e-            (privk "sign" b))))-      (send-        (enc "eortag" (enc a b t y x (pubk hash)) e (privk "sign" b))))-    (non-orig (privk hash)))-  (defrole ttp-rc1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-rc-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)))) (send (cat k r)))-    (non-orig (privk hash)))-  (defrole ttp-rc2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "rcrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-rc-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf1-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (cat "sync-cf-req" (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (send-        (enc (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b)) (privk "sign" t))))-    (non-orig (privk hash)))-  (defrole ttp-cf2-    (vars (a b t hash name) (r text) (k skey) (y mesg))-    (trace-      (recv-        (cat (cat a b t y (enc k (pubk hash)))-          (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-            r (pubk "encr" t))-          (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" a))-          (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))-          (enc "cfrq" (cat a b t y (enc k (pubk hash)))-            (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash))-              k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t))))-    (non-orig (privk hash))))--(defskeleton wang-  (vars (y mesg) (r text) (a b t hash name) (k skey))-  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (hash hash) (k k))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (comment "Experiment 3 to prove Lemma 4.3, clause 2.")-  (traces-    ((recv-       (cat (cat a b t y (enc k (pubk hash)))-         (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k r-           (pubk "encr" t))-         (enc "eootag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag" (enc a b t y (enc k (pubk hash)) (pubk hash))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq" (cat a b t y (enc k (pubk hash)))-           (enc "keytag" (enc a b t y (enc k (pubk hash)) (pubk hash)) k-             r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t y (enc k (pubk hash)) (privk "sign" a))-          (privk "sign" t)))))-  (label 43)-  (unrealized (0 0) (0 1))-  (origs)-  (comment "1 in cohort - 1 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-cf2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init5 1)-    (enc "eootag"-      (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-        (pubk hash))-      (enc "keytag"-        (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-          (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)) (0 0))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))))-  (label 44)-  (parent 43)-  (unrealized (0 1))-  (comment "4 in cohort - 4 not yet seen"))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-cf2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((1 1) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (displaced 1 2 init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 45)-  (parent 44)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r r-0 text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-cf2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((2 1) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init3 2)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r-0 (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" a))))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 46)-  (parent 44)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-cf2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((1 2) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (displaced 1 2 init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 47)-  (parent 44)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(defskeleton wang-  (vars (r r-0 text) (m data) (a b t hash name) (k skey))-  (defstrand ttp-cf2 3 (y (enc (enc m k) (pubk hash))) (r r) (a a) (b b)-    (t t) (hash hash) (k k))-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (hash hash) (k k))-  (precedes ((1 0) (0 0)) ((2 2) (0 1)))-  (non-orig (privk hash) (privk "encr" t) (privk "sign" a))-  (operation encryption-test (added-strand init5 3)-    (enc "abrq" a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-      (privk "sign" a)) (0 1))-  (traces-    ((recv-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a))-         (enc "eortag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))-         (enc "cfrq"-           (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" b))))-      (recv-        (cat "sync-cf-req"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a))))-      (send-        (enc "abcf"-          (enc "abrq" a b t (enc (enc m k) (pubk hash))-            (enc k (pubk hash)) (privk "sign" a)) (privk "sign" t))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r (pubk "encr" t)) (privk "sign" a)))))-    ((send-       (cat (cat a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash)))-         (enc m k)-         (enc "keytag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash)) k r-0 (pubk "encr" t))-         (enc "eootag"-           (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-             (pubk hash))-           (enc "keytag"-             (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-               (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" a))))-      (recv-        (enc "eortag"-          (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-            (pubk hash))-          (enc "keytag"-            (enc a b t (enc (enc m k) (pubk hash)) (enc k (pubk hash))-              (pubk hash)) k r-0 (pubk "encr" t)) (privk "sign" b)))-      (send-        (enc "abrq" a b t (enc (enc m k) (pubk hash))-          (enc k (pubk hash)) (privk "sign" a)))))-  (label 48)-  (parent 44)-  (unrealized)-  (shape)-  (maps-    ((0)-      ((a a) (b b) (t t) (hash hash) (r r) (k k)-        (y (enc (enc m k) (pubk hash))))))-  (origs))--(comment "Nothing left to do")
+ tst/wd-goalssat.scm view
@@ -0,0 +1,147 @@+(herald "Wrap-Decrypt example"+	(bound 24)+	(limit 2000)+	(goals-sat)+	)++;; In this version, the redirect URI is registered ahead of time+;; and is not carried in the auth or access messages++(defprotocol wrap-decrypt basic+   (defrole create-key+     (vars (k skey))+     (trace+      (recv (cat "CREATE"))+      (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+     (uniq-gen k)+     )+   (defrole set-wrap+     (vars (k skey) (type mesg))+     (trace+      (recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))+      (send (cat "SET-WRAP-DONE"))+      ))+   (defrole set-decrypt+     (vars (k skey) (type mesg))+     (trace+      (recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))+      (send (cat "SET-DECRYPT-DONE"))+      ))+   (defrole do-decrypt+     (vars (k skey) (m mesg))+     (trace+      (recv (cat "DECRYPT" (hash k) (enc m k)))+      (obsv (cat "decrypt" k))+      (send m)))+   (defrole do-wrap+     (vars (wk ck skey) (cktype mesg))+     (trace+      (recv (cat "WRAP" (hash wk) (hash ck)))+      (obsv (cat "wrap" wk))+      (obsv (cat cktype ck))+      (send (enc ck wk))+      )+    )+   ;; --------- RULES -------------+   (defrule no-key-cycle+     (forall ((z strd) (k skey))+	     (implies+	      (and+	       (p "do-wrap" z 4)+	       (p "do-wrap" "ck" z k)+	       (p "do-wrap" "wk" z k)+	       )+	      (fact falseFact))))++   (defrule no-set-wrap-noops+     (forall ((z strd))+	     (implies+	      (and+	       (p "set-wrap" z 2)+	       (p "set-wrap" "type" z "wrap")+	       )+	      (fact falseFact))))++   (defrule no-set-decrypt-noops+     (forall ((z strd))+	     (implies+	      (and+	       (p "set-decrypt" z 2)+	       (p "set-decrypt" "type" z "decrypt")+	       )+	      (fact falseFact))))++   (defrule secure-mode+     (forall ((z strd))+     (implies+      (and+       (fact secureMode)+       (p "set-decrypt" z 1)+       (p "set-decrypt" "type" z "wrap")+	   )+      (fact falseFact))))++   (defrule conclusion-of-simple+     (forall ((z0 z1 strd) (k skey))+	     (implies+	      (and+	       (p "create-key" z0 3)+		   (p "create-key" "k" z0 k)+		   (p "" z1 1)+		   (p "" "x" z1 k)+		   )+	      ;; A key was used to decrypt after wrapping.+;	      (fact falseFact))))+	      (exists ((z2 z3 strd) (k2 skey))+		      (and+		       (p "do-decrypt" z2 1)+		       (p "do-decrypt" "k" z2 k2)+		       (p "do-wrap" z3 4)+		       (p "do-wrap" "wk" z3 k2)+		       (prec z3 3 z2 0)+		       (prec z2 0 z1 0)+		       )))))+   )++(comment+(defskeleton wrap-decrypt+  (vars (k skey))+  (defstrand do-decrypt 3 (k k))+  (defstrand do-wrap 3 (wk k))+  (facts (secureMode))+  (precedes ((1 2) (0 0))))+)++;;; Defgoals+;;; Secure mode+(defgoal wrap-decrypt+  (forall ((z0 z1 strd) (k skey))+	  (implies+	   (and+	    (fact secureMode)+	    (p "do-decrypt" z0 3)+	    (p "do-decrypt" "k" z0 k)+	    (p "do-wrap" z1 4)+	    (p "do-wrap" "wk" z1 k)+	    (prec z1 3 z0 0))+;;; Infinite descent: implies there exists two copies of decrypt followed by wrap, one before the other.+	   (or+	    (fact falseFact)+	   (exists+	    ((z2 z3 z4 z5 strd) (k0 k1 skey))+	    (and+	     (p "do-decrypt" z2 3)+	     (p "do-decrypt" "k" z2 k0)+	     (p "do-wrap" z3 4)+	     (p "do-wrap" "wk" z3 k0)+	     (prec z2 3 z3 0)+	     (p "do-decrypt" z4 3)+	     (p "do-decrypt" "k" z4 k1)+	     (p "do-wrap" z5 4)+	     (p "do-wrap" "wk" z5 k1)+	     (prec z4 3 z5 0)+	     (prec z2 3 z4 0))+	    )))))
+ tst/wd-goalssat.tst view
@@ -0,0 +1,654 @@+(herald "Wrap-Decrypt example" (bound 24) (limit 2000) (goals-sat))++(comment "CPSA 3.6.8")+(comment "All input read from tst/wd-goalssat.scm")+(comment "Strand count bounded at 24")+(comment "Stop when goals satisfied")++(defprotocol wrap-decrypt basic+  (defrole create-key+    (vars (k skey))+    (trace (recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    (uniq-gen k))+  (defrole set-wrap+    (vars (k skey) (type mesg))+    (trace (recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k)) (send "SET-WRAP-DONE")))+  (defrole set-decrypt+    (vars (k skey) (type mesg))+    (trace (recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k)) (send "SET-DECRYPT-DONE")))+  (defrole do-decrypt+    (vars (k skey) (m mesg))+    (trace (recv (cat "DECRYPT" (hash k) (enc m k)))+      (obsv (cat "decrypt" k)) (send m)))+  (defrole do-wrap+    (vars (wk ck skey) (cktype mesg))+    (trace (recv (cat "WRAP" (hash wk) (hash ck)))+      (obsv (cat "wrap" wk)) (obsv (cat cktype ck)) (send (enc ck wk))))+  (defrule no-key-cycle+    (forall ((z strd) (k skey))+      (implies+        (and (p "do-wrap" z 4) (p "do-wrap" "ck" z k)+          (p "do-wrap" "wk" z k))+        (fact falseFact))))+  (defrule no-set-wrap-noops+    (forall ((z strd))+      (implies+        (and (p "set-wrap" z 2) (p "set-wrap" "type" z "wrap"))+        (fact falseFact))))+  (defrule no-set-decrypt-noops+    (forall ((z strd))+      (implies+        (and (p "set-decrypt" z 2) (p "set-decrypt" "type" z "decrypt"))+        (fact falseFact))))+  (defrule secure-mode+    (forall ((z strd))+      (implies+        (and (fact secureMode) (p "set-decrypt" z 1)+          (p "set-decrypt" "type" z "wrap"))+        (fact falseFact))))+  (defrule conclusion-of-simple+    (forall ((z0 z1 strd) (k skey))+      (implies+        (and (p "create-key" z0 3) (p "create-key" "k" z0 k) (p "" z1 1)+          (p "" "x" z1 k))+        (exists ((z2 z3 strd) (k2 skey))+          (and (p "do-decrypt" z2 1) (p "do-wrap" z3 4)+            (p "do-decrypt" "k" z2 k2) (p "do-wrap" "wk" z3 k2)+            (prec z3 3 z2 0) (prec z2 0 z1 0)))))))++(defskeleton wrap-decrypt+  (vars (cktype m mesg) (k ck skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m m) (k k))+  (precedes ((0 3) (1 0)))+  (facts (secureMode))+  (goals+    (forall ((z0 z1 strd) (k skey))+      (implies+        (and (fact secureMode) (p "do-decrypt" z0 3)+          (p "do-decrypt" "k" z0 k) (p "do-wrap" z1 4)+          (p "do-wrap" "wk" z1 k) (prec z1 3 z0 0))+        (or (fact falseFact)+          (exists ((z2 z3 z4 z5 strd) (k0 k1 skey))+            (and (p "do-decrypt" z2 3) (p "do-decrypt" "k" z2 k0)+              (p "do-wrap" z3 4) (p "do-wrap" "wk" z3 k0)+              (prec z2 3 z3 0) (p "do-decrypt" z4 3)+              (p "do-decrypt" "k" z4 k1) (p "do-wrap" z5 4)+              (p "do-wrap" "wk" z5 k1) (prec z4 3 z5 0)+              (prec z2 3 z4 0)))))))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))+      (send m)))+  (label 0)+  (unrealized (0 1) (0 2) (1 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype m type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m m) (k k))+  (defstrand set-decrypt 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)))+  (leadsto ((2 1) (1 1)))+  (facts (secureMode))+  (operation state-passing-test (added-strand set-decrypt 2)+    (cat "decrypt" k) (1 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))+      (send m))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))))+  (label 1)+  (parent 0)+  (unrealized (0 1) (0 2) (2 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype m mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m m) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 2) (2 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation state-passing-test (added-strand create-key 3)+    (cat "init" k) (2 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))+      (send m))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k))))+  (label 2)+  (parent 1)+  (unrealized (0 1) (0 2) (1 0))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype m type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m m) (k k))+  (defstrand set-decrypt 2 (type "wrap") (k k))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (2 1)))+  (leadsto ((2 1) (1 1)) ((3 1) (2 1)))+  (facts (falseFact) (secureMode))+  (rule secure-mode)+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (2 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))+      (send m))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "wrap" k) (cat "decrypt" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 3)+  (parent 1)+  (unrealized (0 1) (0 2) (3 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m m))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype m type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m m) (k k))+  (defstrand set-decrypt 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (2 1)))+  (leadsto ((2 1) (1 1)) ((3 1) (2 1)))+  (facts (falseFact) (secureMode))+  (rule no-set-decrypt-noops)+  (operation state-passing-test (added-strand set-decrypt 2)+    (cat "decrypt" k) (2 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))+      (send m))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "decrypt" k) (cat "decrypt" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))))+  (label 4)+  (parent 1)+  (unrealized (0 1) (0 2) (3 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m m))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 2) (2 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation encryption-test (displaced 4 0 do-wrap 4) (enc ck-0 k)+    (1 0))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))+      (send ck))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k))))+  (label 5)+  (parent 2)+  (unrealized (0 1) (0 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype cktype-0 mesg) (ck k ck-0 skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck-0) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (1 0)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation encryption-test (added-strand do-wrap 4) (enc ck-0 k)+    (1 0))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))+      (obsv (cat "decrypt" k)) (send ck-0))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))+      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k))))+  (label 6)+  (parent 2)+  (unrealized (0 1) (0 2) (4 1) (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 2) (2 1)) ((4 1) (0 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (0 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))+      (send ck))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 7)+  (parent 5)+  (unrealized (0 2) (4 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck-0) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 3) (1 0))+    ((5 1) (4 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (4 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))+      (obsv (cat "decrypt" k)) (send ck-0))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))+      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 8)+  (parent 6)+  (unrealized (0 1) (0 2) (4 2) (5 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand set-wrap 2 (type "wrap") (k k))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (0 1))+    ((5 1) (4 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1)))+  (uniq-gen k)+  (facts (falseFact) (secureMode))+  (rule no-set-wrap-noops)+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (4 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))+      (send ck))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "wrap" k) (cat "wrap" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 9)+  (parent 7)+  (unrealized (0 2) (5 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand set-wrap 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (0 1))+    ((5 1) (4 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation state-passing-test (added-strand set-decrypt 2)+    (cat "decrypt" k) (4 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))+      (send ck))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "decrypt" k) (cat "wrap" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))))+  (label 10)+  (parent 7)+  (unrealized (0 2) (5 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck-0) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))+  (defstrand set-wrap 2 (type "wrap") (k k))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))+    ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1)))+  (uniq-gen k)+  (facts (falseFact) (secureMode))+  (rule no-set-wrap-noops)+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (5 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))+      (obsv (cat "decrypt" k)) (send ck-0))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))+      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "wrap" k) (cat "wrap" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 11)+  (parent 8)+  (unrealized (0 1) (0 2) (4 2) (6 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck-0))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck-0) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))+  (defstrand set-wrap 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))+    ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1)))+  (uniq-gen k)+  (facts (secureMode))+  (operation state-passing-test (added-strand set-decrypt 2)+    (cat "decrypt" k) (5 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))+      (obsv (cat "decrypt" k)) (send ck-0))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))+      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "decrypt" k) (cat "wrap" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))))+  (label 12)+  (parent 8)+  (unrealized (0 1) (0 2) (4 2) (6 1))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton wrap-decrypt+  (vars (cktype type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand set-wrap 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type "wrap") (k k))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))+    ((4 1) (0 1)) ((5 1) (4 1)) ((6 1) (5 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1))+    ((6 1) (5 1)))+  (uniq-gen k)+  (facts (falseFact) (secureMode))+  (rule secure-mode)+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (5 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))+      (send ck))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "decrypt" k) (cat "wrap" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "wrap" k) (cat "decrypt" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 13)+  (parent 10)+  (unrealized (0 2) (6 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype type mesg) (ck k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand set-wrap 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))+    ((4 1) (0 1)) ((5 1) (4 1)) ((6 1) (5 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1))+    ((6 1) (5 1)))+  (uniq-gen k)+  (facts (falseFact) (secureMode))+  (rule no-set-decrypt-noops)+  (operation state-passing-test (added-strand set-decrypt 2)+    (cat "decrypt" k) (5 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))+      (send ck))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "decrypt" k) (cat "wrap" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "decrypt" k) (cat "decrypt" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))))+  (label 14)+  (parent 10)+  (unrealized (0 2) (6 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck-0) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))+  (defstrand set-wrap 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type "wrap") (k k))+  (defstrand set-wrap 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 1) (7 0))+    ((3 2) (2 1)) ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1))+    ((7 1) (6 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1))+    ((7 1) (6 1)))+  (uniq-gen k)+  (facts (falseFact) (secureMode))+  (rule secure-mode)+  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)+    (6 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))+      (obsv (cat "decrypt" k)) (send ck-0))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))+      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "decrypt" k) (cat "wrap" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "wrap" k) (cat "decrypt" k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat type k) (cat "wrap" k))))+  (label 15)+  (parent 12)+  (unrealized (0 1) (0 2) (4 2) (7 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck-0))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt+  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))+  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))+  (defstrand do-decrypt 3 (m ck-0) (k k))+  (defstrand set-decrypt 2 (type "init") (k k))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))+  (defstrand set-wrap 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type "decrypt") (k k))+  (defstrand set-decrypt 2 (type type) (k k))+  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 1) (7 0))+    ((3 2) (2 1)) ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1))+    ((7 1) (6 1)))+  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1))+    ((7 1) (6 1)))+  (uniq-gen k)+  (facts (falseFact) (secureMode))+  (rule no-set-decrypt-noops)+  (operation state-passing-test (added-strand set-decrypt 2)+    (cat "decrypt" k) (6 1))+  (traces+    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))+      (obsv (cat cktype ck)) (send (enc ck k)))+    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))+      (obsv (cat "decrypt" k)) (send ck-0))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "init" k) (cat "decrypt" k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k)))+      (init (cat "init" k)))+    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))+      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))+    ((recv (cat "SET-WRAP" (hash k)))+      (tran (cat "decrypt" k) (cat "wrap" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat "decrypt" k) (cat "decrypt" k)))+    ((recv (cat "SET-DECRYPT" (hash k)))+      (tran (cat type k) (cat "decrypt" k))))+  (label 16)+  (parent 12)+  (unrealized (0 1) (0 2) (4 2) (7 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck-0))))+  (origs)+  (comment "satisfies all"))++(comment "Nothing left to do")
+ tst/wd-gs-simple.scm view
@@ -0,0 +1,67 @@+(herald "Wrap-Decrypt example, simplified"+	(bound 24)+	(limit 500)+	(goals-sat)+	)++;; In this version, the redirect URI is registered ahead of time+;; and is not carried in the auth or access messages++(defprotocol wrap-decrypt-simple basic+   (defrole create-key+     (vars (k skey))+     (trace+      (recv (cat "CREATE"))+      (send (cat "CREATED" (hash k)))+      (init k))+     (uniq-gen k)+     )+   (defrole do-decrypt+     (vars (k skey) (m mesg))+     (trace+      (recv (cat "DECRYPT" (hash k) (enc m k)))+      (obsv k)+      (send m)))+   (defrole do-wrap+     (vars (wk ck skey) (cktype mesg))+     (trace+      (recv (cat "WRAP" (hash wk) (hash ck)))+      (obsv wk)+      (obsv ck)+      (send (enc ck wk))+      )+     (neq (ck wk))+    )+   ;; --------- RULES -------------+   )++(defgoal wrap-decrypt-simple+  (forall ((z0 z1 strd) (k skey))+  (implies+   (and (p "create-key" z0 3)+	(p "create-key" "k" z0 k)+	(p "" z1 1)+	(p "" "x" z1 k)+	)+   (or+    ;; This is not the first instance of a key leaking+    (exists ((z2 z3 z4 z5 strd) (k2 k3 skey))+	   (and+	    (p "create-key" z2 2)+	    (p "create-key" "k" z2 k2)+	    (p "create-key" z4 2)+	    (p "create-key" "k" z4 k3)+	    (p "" z3 1)+	    (p "" "x" z3 k2)+	    (p "" z5 1)+	    (p "" "x" z5 k3)+	    (prec z3 1 z5 0)))+    ;; A key was used to decrypt after wrapping.+    (exists ((z2 z3 strd) (k2 skey))+	    (and+	     (p "do-decrypt" z2 3)+	     (p "do-decrypt" "k" z2 k2)+	     (p "do-wrap" z3 4)+	     (p "do-wrap" "wk" z3 k2)+	     (prec z3 3 z2 0)+	     ))))))
+ tst/wd-gs-simple.tst view
@@ -0,0 +1,393 @@+(herald "Wrap-Decrypt example, simplified" (bound 24) (limit 500)+  (goals-sat))++(comment "CPSA 3.6.8")+(comment "All input read from tst/wd-gs-simple.scm")+(comment "Step count limited to 500")+(comment "Strand count bounded at 24")+(comment "Stop when goals satisfied")++(defprotocol wrap-decrypt-simple basic+  (defrole create-key+    (vars (k skey))+    (trace (recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    (uniq-gen k))+  (defrole do-decrypt+    (vars (k skey) (m mesg))+    (trace (recv (cat "DECRYPT" (hash k) (enc m k))) (obsv k) (send m)))+  (defrole do-wrap+    (vars (wk ck skey))+    (trace (recv (cat "WRAP" (hash wk) (hash ck))) (obsv wk) (obsv ck)+      (send (enc ck wk)))+    (neq (ck wk))))++(defskeleton wrap-decrypt-simple+  (vars (k skey))+  (deflistener k)+  (defstrand create-key 3 (k k))+  (uniq-gen k)+  (goals+    (forall ((z0 z1 strd) (k skey))+      (implies+        (and (p "create-key" z0 3) (p "create-key" "k" z0 k) (p "" z1 1)+          (p "" "x" z1 k))+        (or+          (exists ((z2 z3 z4 z5 strd) (k2 k3 skey))+            (and (p "create-key" z2 2) (p "create-key" "k" z2 k2)+              (p "create-key" z4 2) (p "create-key" "k" z4 k3)+              (p "" z3 1) (p "" "x" z3 k2) (p "" z5 1) (p "" "x" z5 k3)+              (prec z3 1 z5 0)))+          (exists ((z2 z3 strd) (k2 skey))+            (and (p "do-decrypt" z2 3) (p "do-decrypt" "k" z2 k2)+              (p "do-wrap" z3 4) (p "do-wrap" "wk" z3 k2)+              (prec z3 3 z2 0)))))))+  (traces ((recv k))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k)))+  (label 0)+  (unrealized (0 0))+  (preskeleton)+  (origs)+  (comment "Not a skeleton"))++(defskeleton wrap-decrypt-simple+  (vars (k skey))+  (deflistener k)+  (defstrand create-key 3 (k k))+  (precedes ((1 1) (0 0)))+  (uniq-gen k)+  (goals+    (forall ((z0 z1 strd) (k skey))+      (implies+        (and (p "create-key" z0 3) (p "create-key" "k" z0 k) (p "" z1 1)+          (p "" "x" z1 k))+        (or+          (exists ((z2 z3 z4 z5 strd) (k2 k3 skey))+            (and (p "create-key" z2 2) (p "create-key" "k" z2 k2)+              (p "create-key" z4 2) (p "create-key" "k" z4 k3)+              (p "" z3 1) (p "" "x" z3 k2) (p "" z5 1) (p "" "x" z5 k3)+              (prec z3 1 z5 0)))+          (exists ((z2 z3 strd) (k2 skey))+            (and (p "do-decrypt" z2 3) (p "do-decrypt" "k" z2 k2)+              (p "do-wrap" z3 4) (p "do-wrap" "wk" z3 k2)+              (prec z3 3 z2 0)))))))+  (traces ((recv k))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k)))+  (label 1)+  (parent 0)+  (unrealized (0 0))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k wk skey))+  (deflistener k)+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (wk wk) (ck k))+  (precedes ((1 1) (2 0)) ((2 3) (0 0)))+  (neq (k wk))+  (uniq-gen k)+  (operation nonce-test (added-strand do-wrap 4) k (0 0))+  (traces ((recv k))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "WRAP" (hash wk) (hash k))) (obsv wk) (obsv k)+      (send (enc k wk))))+  (label 2)+  (parent 1)+  (unrealized (2 1) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k)+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (wk k-0) (ck k))+  (defstrand create-key 3 (k k-0))+  (precedes ((1 1) (2 0)) ((2 3) (0 0)) ((3 1) (2 0)) ((3 2) (2 1)))+  (leadsto ((3 2) (2 1)))+  (neq (k k-0))+  (uniq-gen k k-0)+  (operation state-passing-test (added-strand create-key 3) k-0 (2 1))+  (traces ((recv k))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "WRAP" (hash k-0) (hash k))) (obsv k-0) (obsv k)+      (send (enc k k-0)))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0)))+  (label 3)+  (parent 2)+  (unrealized (0 0) (2 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (precedes ((1 1) (2 0)) ((1 2) (2 2)) ((2 3) (0 0)) ((3 1) (2 0))+    ((3 2) (2 1)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation state-passing-test (displaced 4 1 create-key 3) k-0 (2 2))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k)))+  (label 4)+  (parent 3)+  (unrealized (0 0))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-decrypt 3 (m k-0) (k k))+  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))+    ((3 1) (2 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (0 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation nonce-test (added-strand do-decrypt 3) k-0 (0 0)+    (enc k-0 k))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0)))+  (label 5)+  (parent 4)+  (unrealized (4 0) (4 1))+  (comment "3 in cohort - 3 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 wk skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (wk wk) (ck k-0))+  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))+    ((3 1) (2 0)) ((3 2) (2 1)) ((4 3) (0 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 wk) (k-0 k))+  (uniq-gen k k-0)+  (operation nonce-test (added-strand do-wrap 4) k-0 (0 0) (enc k-0 k))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "WRAP" (hash wk) (hash k-0))) (obsv wk) (obsv k-0)+      (send (enc k-0 wk))))+  (label 6)+  (parent 4)+  (unrealized (4 1) (4 2))+  (comment "2 in cohort - 2 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (deflistener k)+  (precedes ((1 1) (2 0)) ((1 2) (2 2)) ((2 3) (0 0)) ((3 1) (2 0))+    ((3 1) (4 0)) ((3 2) (2 1)) ((4 1) (0 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation nonce-test (added-listener k) k-0 (0 0) (enc k-0 k))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv k) (send k)))+  (label 7)+  (parent 4)+  (unrealized (4 0))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k-0))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-decrypt 3 (m k-0) (k k))+  (precedes ((1 1) (2 0)) ((1 2) (2 2)) ((2 3) (4 0)) ((3 1) (2 0))+    ((3 2) (2 1)) ((4 2) (0 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation encryption-test (displaced 5 2 do-wrap 4) (enc k-0 k)+    (4 0))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0)))+  (label 8)+  (parent 5)+  (unrealized (4 1))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k-0))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-decrypt 3 (m k-0) (k k))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (precedes ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (2 2)) ((2 3) (0 0))+    ((3 1) (2 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 2) (0 0))+    ((5 3) (4 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation encryption-test (added-strand do-wrap 4) (enc k-0 k) (4 0))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k))))+  (label 9)+  (parent 5)+  (unrealized (4 1) (5 1) (5 2))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k-0))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-decrypt 3 (m k-0) (k k))+  (deflistener k)+  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))+    ((3 1) (2 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 2) (0 0))+    ((5 1) (4 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation encryption-test (added-listener k) (enc k-0 k) (4 0))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0))+    ((recv k) (send k)))+  (label 10)+  (parent 5)+  (unrealized (4 0) (4 1) (5 0))+  (fringe)+  (satisfies-all)+  (maps ((0 1) ((k k-0))))+  (origs)+  (comment "satisfies all"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))+    ((3 1) (2 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((3 2) (4 1))+    ((4 3) (0 0)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)) ((3 2) (4 1)))+  (neq (k-0 k))+  (uniq-gen k k-0)+  (operation state-passing-test (displaced 5 3 create-key 3) k-1 (4 1))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k))))+  (label 11)+  (parent 6)+  (seen 4)+  (unrealized (0 0) (4 2))+  (comment "1 in cohort - 0 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 k-1 skey))+  (deflistener k-0)+  (defstrand create-key 3 (k k-0))+  (defstrand do-wrap 4 (wk k) (ck k-0))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (wk k-1) (ck k-0))+  (defstrand create-key 3 (k k-1))+  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))+    ((3 1) (2 0)) ((3 2) (2 1)) ((4 3) (0 0)) ((5 1) (4 0))+    ((5 2) (4 1)))+  (leadsto ((1 2) (2 2)) ((3 2) (2 1)) ((5 2) (4 1)))+  (neq (k-0 k-1) (k-0 k))+  (uniq-gen k k-0 k-1)+  (operation state-passing-test (added-strand create-key 3) k-1 (4 1))+  (traces ((recv k-0))+    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))+    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)+      (send (enc k-0 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "WRAP" (hash k-1) (hash k-0))) (obsv k-1) (obsv k-0)+      (send (enc k-0 k-1)))+    ((recv "CREATE") (send (cat "CREATED" (hash k-1))) (init k-1)))+  (label 12)+  (parent 6)+  (unrealized (0 0) (4 2))+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton wrap-decrypt-simple+  (vars (k k-0 k-1 skey))+  (deflistener k-1)+  (defstrand create-key 3 (k k-1))+  (defstrand do-wrap 4 (wk k) (ck k-1))+  (defstrand create-key 3 (k k))+  (defstrand do-wrap 4 (wk k-0) (ck k-1))+  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((1 2) (4 2))+    ((2 3) (0 0)) ((3 1) (2 0)) ((3 2) (2 1)) ((4 3) (0 0)))+  (leadsto ((1 2) (2 2)) ((1 2) (4 2)) ((3 2) (2 1)))+  (neq (k-1 k-0) (k-1 k))+  (uniq-gen k k-1)+  (operation state-passing-test (displaced 6 1 create-key 3) k-1 (4 2))+  (traces ((recv k-1))+    ((recv "CREATE") (send (cat "CREATED" (hash k-1))) (init k-1))+    ((recv (cat "WRAP" (hash k) (hash k-1))) (obsv k) (obsv k-1)+      (send (enc k-1 k)))+    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))+    ((recv (cat "WRAP" (hash k-0) (hash k-1))) (obsv k-0) (obsv k-1)+      (send (enc k-1 k-0))))+  (label 13)+  (parent 12)+  (seen 4)+  (unrealized (4 1))+  (comment "1 in cohort - 0 not yet seen"))++(comment "Nothing left to do")
tst/woolam.tst view
@@ -1,6 +1,6 @@ (herald "Woo-Lam Protocol") -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/woolam.scm")  (defprotocol woolam basic
tst/wrap_decrypt.tst view
@@ -1,6 +1,6 @@ (herald wrap-decrypt (bound 10)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/wrap_decrypt.lsp") (comment "Strand count bounded at 10") 
tst/yahalom.tst view
@@ -1,7 +1,7 @@ (herald "Yahalom Protocol with Forwarding Removed"   (algebra diffie-hellman) (bound 12)) -(comment "CPSA 3.6.6")+(comment "CPSA 3.6.8") (comment "All input read from tst/yahalom.scm")  (defprotocol yahalom diffie-hellman
+ tst/yolo.scm view
@@ -0,0 +1,48 @@+(herald yolo)++;;; This protocol illustates the odd effect of (uniq-gen (privk a)).++(defprotocol yolo basic+  (defrole init+    (vars (a name) (n text))+    (trace+     (send n)+     (recv (enc "yolo" n a (privk a)))))++  (defrole resp+    (vars (a name) (n text))+    (trace+     (recv n)+     (send (enc "yolo" n a (privk a))))+    (uniq-gen (privk a))))++;;; First query:  the protocol does authenticate the responder to the+;;; initiator.++(defskeleton yolo+  (vars (a name)(n text))+  (defstrand init 2 (n n) (a a))+  (non-orig (privk a)))++;;; Second query:  Two responder strands cannot be completed to any+;;; execution.  Oddly, the CPSA output has (unrealized) which may+;;; confuse the reader.  The only clue that this query has turned out+;;; to be dead is a comment:+;;;+;;; (comment "Input cannot be made into a skeleton--nothing to do")++(defskeleton yolo+  (vars (a name)(n text))+  (defstrand resp 2 (a a))+  (defstrand resp 2 (a a)))++;;; Third query:  Two responder strands cannot be completed to any+;;; execution, in this case with an initiator strand present too.+;;; CPSA's output now reports (unrealized (0 1)), together with the+;;; same comment that the input cannot be made into a skeleton.  ++(defskeleton yolo+  (vars (a name)(n text))+  (defstrand init 2 (n n) (a a))+  (defstrand resp 2 (a a))+  (defstrand resp 2 (a a)))
+ tst/yolo.tst view
@@ -0,0 +1,87 @@+(herald yolo)++(comment "CPSA 3.6.8")+(comment "All input read from tst/yolo.scm")++(defprotocol yolo basic+  (defrole init+    (vars (a name) (n text))+    (trace (send n) (recv (enc "yolo" n a (privk a)))))+  (defrole resp+    (vars (a name) (n text))+    (trace (recv n) (send (enc "yolo" n a (privk a))))+    (uniq-gen (privk a))))++(defskeleton yolo+  (vars (n text) (a name))+  (defstrand init 2 (n n) (a a))+  (non-orig (privk a))+  (traces ((send n) (recv (enc "yolo" n a (privk a)))))+  (label 0)+  (unrealized (0 1))+  (origs)+  (comment "1 in cohort - 1 not yet seen"))++(defskeleton yolo+  (vars (n text) (a name))+  (defstrand init 2 (n n) (a a))+  (defstrand resp 2 (n n) (a a))+  (precedes ((1 1) (0 1)))+  (non-orig (privk a))+  (uniq-gen (privk a))+  (operation encryption-test (added-strand resp 2)+    (enc "yolo" n a (privk a)) (0 1))+  (traces ((send n) (recv (enc "yolo" n a (privk a))))+    ((recv n) (send (enc "yolo" n a (privk a)))))+  (label 1)+  (parent 0)+  (unrealized)+  (shape)+  (maps ((0) ((a a) (n n))))+  (origs))++(comment "Nothing left to do")++(defprotocol yolo basic+  (defrole init+    (vars (a name) (n text))+    (trace (send n) (recv (enc "yolo" n a (privk a)))))+  (defrole resp+    (vars (a name) (n text))+    (trace (recv n) (send (enc "yolo" n a (privk a))))+    (uniq-gen (privk a))))++(defskeleton yolo+  (vars (n n-0 text) (a name))+  (defstrand resp 2 (n n) (a a))+  (defstrand resp 2 (n n-0) (a a))+  (uniq-gen (privk a) (privk a))+  (traces ((recv n) (send (enc "yolo" n a (privk a))))+    ((recv n-0) (send (enc "yolo" n-0 a (privk a)))))+  (label 2)+  (unrealized)+  (origs)+  (comment "Input cannot be made into a skeleton--nothing to do"))++(defprotocol yolo basic+  (defrole init+    (vars (a name) (n text))+    (trace (send n) (recv (enc "yolo" n a (privk a)))))+  (defrole resp+    (vars (a name) (n text))+    (trace (recv n) (send (enc "yolo" n a (privk a))))+    (uniq-gen (privk a))))++(defskeleton yolo+  (vars (n n-0 n-1 text) (a name))+  (defstrand init 2 (n n) (a a))+  (defstrand resp 2 (n n-0) (a a))+  (defstrand resp 2 (n n-1) (a a))+  (uniq-gen (privk a) (privk a))+  (traces ((send n) (recv (enc "yolo" n a (privk a))))+    ((recv n-0) (send (enc "yolo" n-0 a (privk a))))+    ((recv n-1) (send (enc "yolo" n-1 a (privk a)))))+  (label 3)+  (unrealized (0 1))+  (origs)+  (comment "Input cannot be made into a skeleton--nothing to do"))